c語言解一元二次方程
㈠ 編寫一個c語言程序來求解下面一個一元二次方程的實數解:2x平方+5x+3=0
一元二次方雹盯程ax^2+bx+c=0 (a≠0)的解有三種情況:
①判別式Δ=0時,有兩個相等實培慧根。
②判別配肆答式Δ>0時,有兩個不等實根。
③判別式Δ<0時,無實數解。
源程序如下:
程序運行結果
注意如果a是分數時, c語言輸入要轉化成小數,例如1/2要輸入0.5。
㈡ 怎樣用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;
}
㈢ 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語言編寫一個程序求解一元二次方程ax2+bx+c=0的根。要求系數a,b,c從鍵盤輸入在實數范圍
下面是求解一元二次方程的C語言代碼:
#include <stdio.h>
#include <math.h>
int main()
{
double a, b, c, x1, x2, disc;
printf("請輸入一元二次方程的系數a, b, c: ");
scanf("%lf %lf %lf", &a, &b, &c);
disc = b * b - 4 * a * c;
if (disc > 0) {
x1 = (-b + sqrt(disc)) / (2 * a);
x2 = (-b - sqrt(disc)) / (2 * a);
printf("方程的兩個實根為: x1=%.2f, x2=%.2f\n", x1, x2);
} else if (disc == 0) {
x1 = x2 = -b / (2 * a);
printf("方程有兩個相等的實根: x1=x2=%.2f\n", x1);
} else {
printf("方程無實根\n");
}
return 0;
}
在運行程序時,用戶需要從鍵盤輸入方程的系數a, b, c,程序會自動計算辯手並輸出方程的根。其中,如果判別式disc大於0,說明方程有逗蠢兩個不相等的實根;如果判別式等於0,說明方程有兩個相等的實根;山灶陪如果判別式小於0,說明方程無實根。
㈤ 求解一元二次方程的解的c語言程序
#include<stdio.h>
#include<math.h>
int main()
{ double a,b,c,d;
scanf("%lf%lf%lf",&a,&b,&c);
d=b*b-4*a*c;
if(d<0)
printf("方程沒有實數根! ");
else if(d==0)
{ printf("方程有兩個相等的實數根: ");
printf("x1=x2=%g ",-b/(2*a));
}
else
{ printf("方程有兩個不相等的實數根: ");
printf("x1=%g x2=%g ",(-b-sqrt(d))/(2*a),(-b+sqrt(d))/(2*a));
}
return 0;
}
㈥ 用C語言編寫一程序求解一元二次方程的根。
#include<stdio.h>
#include<math.h>
void m(float a,float b,float c)
{
double x1,x2;
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("方程的根是%.2lf和%.2lf",x1,x2);
}
void n(float a,float b,float c)
{
double x;
x=(-b)/(2*a);
printf("方程的根為%.2lf",x);
}
void f(float a,float b,float c)
{
printf("方程無實數根\n");
}
main()
{
float a,b,c;
printf("請輸入a,b,c的值\n");
scanf("%f%f%f",&a,&b,&c);
if(b*b-4*a*c>0)
m(a,b,c);
if(b*b-4*a*c==0)
n(a,b,c);
if(b*b-4*a*c<0)
f(a,b,c);
}