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

一元二次方程的系數abc的值c語言編程

發布時間: 2022-06-09 20:52:40

⑴ 用c語言編寫程序,輸入一元二次方程的系數a,b,c,計算方程的根(假設是兩個實根,測試數據必須保證這一

希望有用,敬請採納 ^_^

# include<stdio.h>
# include<math.h>
int main()
{
void root2(double a,double b,double disc); //定義方程有兩個根時的函數
void root1(double a,double b); //定義方程只有一個根時的函數
void root0(); //定義方程沒有實數解是的函數
double a,b,c,disc;
printf("請輸入a,b,c的值:");
scanf("%lf %lf %lf",&a,&b,&c);
if(a==0) //一元二次方程二次項系數不為0
{
printf("data error\n");
}
else
{
disc=b*b-4*a*c;
if(disc>0)
root2(a,b,disc);
else if(disc==0)
root1(a,b);
else
root0();
}
return 0;
}
void root2(double a,double b,double disc)
{
double x1,x2;
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf("x1=%lf\nx2=%f\n",x1,x2);
}
void root1(double a,double b)
{
double x;
x=(-b)/(2*a);
printf("x1=x2=%lf\n",x);
}
void root0()
{
printf("方程沒有實數解\n");
}

⑵ C語言 輸入一元二次方程的系數a,b,c然後輸出這個一元二次方程,a為0時結束。

#include"stdio.h"
#include"math.h"
voidmain()
{
floata,b,c;
printf("輸入abc三者的值: ");
scanf("%f",&a);
while(fabs(a)>1e-5)
{
scanf("%f",&b);
scanf("%f",&c);
printf("%.2fx^2+(%.2fx)+(%.2f)=0 ",a,b,c);
scanf("%f",&a);
}
if(fabs(a)<1e-5)
printf("結束 ");
system("pause");
return;
}

⑶ C語言編程 一元二次方程求根。要求:鍵盤輸入系數a,b,c的值,求解一元二次方程的根

#include<stdio.h>
#include<math.h>
int main()
{
double a,b,c,disc,p,q,x1,x2;
scanf("%lf%lf%lf",&a,&b,&c);
disc=b*b-4*a*c;
if(a != 0)
{
if(disc<0)
printf("\n");
else
{
p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q;
x2=p-q;
if(disc>0)
printf("%f%f\n",x1,x2);
else printf("%f\n",x1);
}
}
else if(b == 0)
{
if(c == 0)
printf("有無限多個解\n");
else
printf("無解\n");
}
else
{
x1 = -c/b;
printf("x =%f\n",x1);
}
return 0;
}

⑷ C語言 任意輸入一元二次方程的系數a, b, c,計算並輸出一元二次方程的所有根

#include<stdio.h>
#include<math.h>
voidmain()
{
floata,b,c,x1,x2,disc;
scanf("f%f%f%",&a,&b,&c);//改成scanf("%f%f%f",&a,&b,&c);
disc=b*b-4*a*c;
if(fabs(a)<=1e-6)
{
x1=-c/b;
printf("%2.4f",x1);

}
elseif(disc>=0)
{
x1=float(-b+sqrt(disc))/(2*a);
x2=float(-b-sqrt(disc))/(2*a);
printf("%2.4f%2.4f",x1,x2);
}
else(disc<0)//改成elseif(disc<0)
{
printf("根為共軛復數");
}
}

⑸ c語言 給定一元二次方程的系數a,b,c,求方程的解。用開方函數

參考代碼如下:
#include<stdio.h>
#include<math.h>
#define EPS 1e-6
int main(void)
{
float a,b,c,p,q,disc;
printf("ax*x+bx+c=0\n");
printf("請輸入a b c:");
scanf("%f%f%f",&a,&b,&c);
p=-b/(2*a);
disc=b*b-4*a*c;
q=sqrt(fabs(disc))/(2*a);
if(fabs(a)<=EPS)//解決浮點數相等比較問題
printf("參數錯誤\n");
else if(fabs(disc)<=EPS)
printf("x1=x2=%.2f\n",p);
else if(disc>0){
printf("x1=%.2f\n",p+q);
printf("x2=%.2f\n",p-q);
} else {
printf("x1=%.2f+%.2fi\n",p,q);
printf("x2=%.2f-%.2fi\n",p,q);
}
return 0;
}

⑹ 用C語言編寫程序,輸入一元二次方程的系數a,b,c,計算方程的根,要考慮虛根的情況,求解答

對於ax^2+bx+c=0
int panan(int a,int b,int c)
{
int m;
m=b*b-4*a*c;
return(m);
}
void main()
{int a,b,c,flag,x1,x2,ture,virture;
printf("請依次輸入二次方程的系數:\n」);
scanf("%d %d %d",&a,&b,&c);
flag=panan(a,b,c);
if(flag>0)
{x1=(-b+sqr(flag))/(2*a);
x2=(-b-sqr(flag))/(2*a);
printf("兩個不相等的實根為:x1=%d,x2=%d",x1,x2);
}
else if(flag==0)
{x1=-b/(2*a);
printf("兩個相等的實根為:x1=x2=%d",x1);
}
else
{ture=-b/(2*a);
virture=sqr(-flag)/(2*a);
printf("兩個不相等的虛根為:x1=%d+%di,x2=%d-%di",ture,virture,ture,virture);
}
}
程序的健壯性不是很好,適用於int型的,你可以將所有的變數都改為float,這樣就可以處理其他的問題。要求輸入絕對正確,3個系數之間以空格隔開!

⑺ 用C語言輸入一元二次方程的系數a,b,c,採用二分法求方程的根 ,精確到小數點後2位(即誤差<=0。01)

以下是二分法求已知區間的根,自己將其修改一下,增加一個區間確定就可以了
#include <math.h>
#include <stdio.h>
double f(double a, double b, double c, double x) // 求函數值
{ return a * x * x + b * x + c; }
int main()
{
double x, u, v, f1, f2, fm, a, b, c;
printf("請輸入一元二次方程的系數:");
scanf("%lf%lf%lf", &a, &b, &c);
/* 這里可以增加是否合法二次方程的判斷*/
printf("請輸入區間端點:");
scanf("%lf%lf", &u, &v);
f1 = f(a, b, c, u);
f2 = f(a, b, c, v);
if (f1 * f2 > 0)
{
printf("區間內無解!\n");
return 1;
}
do
{
x = (u + v) / 2;
fm = f(a, b, c, x);
if (fm == 0)
break;
if (f1 * fm > 0.0) /* 同號時修改端點*/
{
u = x;
f1 = f(a, b, c, u);
}
else
v = x;
} while (fabs(fm) >= 1e-2);/*這里還可以在條件中增加循環次數控制*/
printf("根為:%8.3lf\n", x);
return 0;
}

⑻ C語言計算一元二次方程方程過程中,如何給abc賦值

scanf("%1f%1f%1f",&a,&b,&c);
應該是:
scanf("%lf%lf%lf",&a,&b,&c);
是小寫的L

⑼ 怎樣用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;
}