當前位置:首頁 » 編程語言 » c語言編程一元二次方程解的個數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言編程一元二次方程解的個數

發布時間: 2022-08-21 15:11:17

① 求一元二次方程ax2+bx+c=0的解。a,b,c為任意實數。c語言編程

#include<stdio.h>

#include<math.h>

int main(void){

double a,b,c;

double x1,x2,x,t,p,q

printf("輸入一元二次方程的系數a,b,c:");

scanf("%lf %lf %lf",&a,&b,&c);

t=b*b-4*a*c;

if(a==0&&b==0&&c==0)

printf("方程無窮解! ");

if(a==0&&b==0&&c!=0)

printf("方程無解! ");

if(a==0&&b!=0){

x=-c/b;

printf("方程有一個根:x=%.2f ",x);

}

if(a!=0&&b!=0){

if(t==0){

x=-b/(2*a);

printf("方程有兩個相同的實根:x1=x2=%.2f ",x);

}

if(t>0){

x1=(-b+sqrt(t))/(2*a);

x2=(-b-sqrt(t))/(2*a);

printf("方程有兩個不同實根:x1=%.2f x2=%.2f ",x1,x2);

}

if(t<0){

p=(-b)/(2*a);

q=sqrt(-t)/(2*a);

printf("方程有兩個不同虛根:x1=%.2f+%.2fi x2=%.2f-%.2fi ",p,q,p,q);

}

}

return 0;

}

(1)c語言編程一元二次方程解的個數擴展閱讀

main()

{

float a,b,c;

x09float temp;//計算b*b-4*a*c

x09float num;//開根號

x09float x1,x2;//方程的根

x09printf("Enter a,b,c:");

x09scanf("%f %f %f",&a,&b,&c);

x09temp=b*b-4*a*c;

x09num=sqrt(temp);

x09if(temp>0) //兩個不同實根

x09{

x09x09x1=(-b+num)/(2*a);

x09x09x2=(-b-num)/(2*a);

x09x09printf("x1=%0.2f,x2=%0.2f ",x1,x2);//保留兩位輸出

x09}

x09if(temp==0)//一個相同實根

x09{

x1=x2=(-b)/(2*a);

printf("x1=x2=%0.2f ",x1);//保留兩位輸出

x09}

x09if(temp

② C語言編程算一元二次方程解的個數

#include<stdio.h>
intmain()
{
inti,a,b,c,k,dlt,n[100];
scanf("%d",&k);
for(i=0;i<k;i++)
{
scanf("%d%d%d",&a,&b,&c);
if(a){
dlt=b*b-a*c*4;
if(dlt>0)n[i]=2;
elseif(dlt<0)n[i]=0;
elsen[i]=1;
}
elseif(b)n[i]=1;
elsec?n[i]=0:n[i]=-1;
}
for(i=0;i<k;i++)
(n[i]==-1)?printf(" INF"):printf(" %d",n[i]);
return0;
}

//運行示例:

以上為各組數輸入後,統一輸出結果。當然也可以輸入每組數後隨著輸出該組的結果,那樣的話更簡單。

③ C語言編程,求一元二次方程 ax2+bx+c=0 的解,謝謝

#include<iostream>

#include<cmath>

using namespace std;

int main()

{

for (int i=0;i<2;i++)

{

double a,b,c,delta,p,q;

cin>>a>>b>>c;

delta=b*b-4*a*c;

p=-b/(2*a);

q=sqrt(fabs(delta))/(2*a);

if (delta>=0)

cout<<p+q<<endl<<p-q<<endl;

else

{

cout<<p<<"+j"<<q;

cout<<endl<<p<<"-j"<<q<<endl;

}

}

return 0;

}

(3)c語言編程一元二次方程解的個數擴展閱讀:

return表示從被調函數返回到主調函數繼續執行,返回時可附帶一個返回值,由return後面的參數指定。return通常是必要的,因為函數調用的時候計算結果通常是通過返回值帶出的。

如果函數執行不需要返回計算結果,也經常需要返回一個狀態碼來表示函數執行的順利與否(-1和0就是最常用的狀態碼),主調函數可以通過返回值判斷被調函數的執行情況。

如果函數名前有返回類型定義,如int,double等就必須有返回值,而如果是void型,則可以不寫return,但這時即使寫了也無法返回數值。

④ C語言,求一元二次方程的解

對於如下的一元二次方程:

ax*x+bx+c=0

設計C語言程序,輸入一元二次方程的三個系數a、b、c,求解出該方程的兩個根,並且允許用戶在程序中多次輸入不同的系數,以求解不同的一元二次方程的解。

編程思路分析:

對於該方程,令delta=b^2-4*a*c,從數學的角度來講,我們需要根據delta的值來判斷該方程的根情況:

當delta>=0時,其兩個根為實數解,分別為(-b+sqrt(delta))/(2*a)和(-b-sqrt(delta))/(2*a);

當delta<0時,其兩個根為復數解,實部皆為-b/(2*a),虛部分別為sqrt(-delta)/(2*a)和-sqrt(-delta)/(2*a)。

其中,sqrt(delta)代表對delta作開根號運算。

在代碼設計中,可定義一個結構體Complex存儲該方程的根,在該結構體中包括實部和虛部兩個變
在程序中,定義兩個Complex類型的根x1和x2,當delta>=0時,兩個根的虛部為0,否則,分別求解兩個根的虛部值。
具體編程如下:

#include"stdio.h"
#include"math.h"
/*求一元二次方程ax*x+bx+c=0的解*/
main()
{floata,b,c,x1,x2,d;
printf("請輸入a:");
scanf("%f",&a);
printf("請輸入b:");
scanf("%f",&b);
printf("請輸入c:");
scanf("%f",&c);
d=b*b-4*a*c;if(d<0)
printf("方程沒有實數解。 ");
if(d==0){x1=(-b)/(2*a);
printf("x1=%f ",x1);}
if(d>0){x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%f,x2=%f ",x1,x2);}}
請輸入a:12
請輸入b:34
請輸入c:4
x1=-0.122985,x2=-2.710348
Pressanykeytocontinue

為迭代序列。

⑤ C語言編程——求一元二次方程的解。。。

報錯是因為「{}」不匹配。

對於你後來問道的結果為零的問題。是因為你scanf類型為float,而你定義的類型為double型導致的。建議程序修改如下:

#include <stdio.h>
#include <math.h>
int main()
{
double disc,x1,x2,realpart,imagpart;
float a = 0;
float b = 0;
float c = 0;
printf("輸入a,b,c: ");
scanf("%f%f%f",&a,&b,&c);
printf("a=%f,b=%f,c=%f ",a,b,c);
disc=b*b-4*a*c;

if(a==0)
{
printf("error");
}
else
{
if(disc==0)
{

//x1=x2=(-b+sqrt(disc))/(2*a);
printf("x1=x2=%f ",-b/(2*a));
}
else
{
if(disc>0)
{

x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf("x1=%f,x2=%f ",x1,x2);
}
else
{

realpart=-b/(2*a);
imagpart=sqrt(-disc)/(2*a);
printf("x1=%f+%fi ",realpart,imagpart);
printf("x2=%f-%fi ",realpart,imagpart);
}
}
}
return 0;
}

運行後結果如下:

⑥ C語言編程:求一元二次方程的解,要求如下圖,咋編

代碼文本:

#include "stdio.h"

#include "math.h"

void fp(double a,double b,double t){

b/=(a+=a);

t=sqrt(t)/a;

printf("x1 = %g x2 = %g ",-b+t,-b-t);

}

void fn(double a,double b,double t){

b/=(a+=a);

t=sqrt(-t)/a;

if(b)

printf("x1 = %g+%gi x2 = %g-%gi ",-b,t,-b,t);

else

printf("x1 = %gi x2 = %gi ",t,-t);

}

void f0(double a,double b){

printf("x1=x2 = %g ",-b/(a+a));

}

int main(int argc,char *argv[]){

double a,b,c,t;

printf("Enter a, b, c(R:)... ");

if(scanf("%lf%lf%lf",&a,&b,&c)==3 && a)

(t=b*b-4*a*c)>0 ? fp(a,b,t) : t<0 ? fn(a,b,t) : f0(a,b);

else

printf("Input error, exit... ");

return 0;

}

⑦ 怎樣用C語言編一個解一元二次方程的程序(可以看步驟)!

#include <stdio.h>
#include <math.h>
int main(void)
{
int a, b, c; //定義一元二次方程的三個數值;
printf("請依次輸入一元二次方程的三個參數a b c,中間以空格隔開\n");
scanf("%d %d %d", &a, &b, &c); //依次輸入一元二次方程的三個參數
double delta = b*b - 4*a*c; //定義delta的值為b*b - 4*a*c
double x1 = (-b + sqrt(delta))/(2 * a);
double x2 = (-b - sqrt(delta))/(2 * a);

if (delta>0) //delta大於0時,方程有兩個解
{
printf("一元二次方程有兩個解\n");
printf("一元二次方程的第一個解,x1 = %f\n",x1);
printf("一元二次方程的第二個解,x2 = %f\n",x2);
}
else if (delta ==0) //delta等於0,方程有兩個相同的解
{
printf("一元二次方程有兩個相同的解\n");
printf("一元二次方程的解為x1 = x2 =%f\n",x1);
}
else //delta小於0時,方程沒有解
{
printf("一元二次方程沒有解\n");
}

return 0;
}