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

用c語言編寫一元二次方程

發布時間: 2022-07-09 07:00:53

⑴ 編寫求解一元二次方程的c語言程序(紅色部分有標注)

#include <stdio.h>
#include <math.h>
int main()
{
double a=1,b=0,c=0,x1,x2,delta;
printf("Input a,b,c: ");
scanf("%lf%lf%lf",&a,&b,&c);//(這里為紅色部分)

if(a==0.0 && b==0.0 && c==0)
{
printf("系數a,b,c不能構成方程! ");
return 0;
}
if(a==0)
{
x1=x2=-c/b;
printf("x1=x2=%.4f ",x1);
return 0;
}
delta =b*b - 4*a*c; //此處填寫delta的計算表達式(這里為紅色部分)
if( delta >= 0)//此處填寫表達式 如果delta>=0
{
delta=sqrt(delta);
x1=(-b+delta)/(2*a);
x2=(-b-delta)/(2*a);
printf("x1=%.4f x2=%.4f ",x1,x2);
}
else
{
delta = (0-delta);//delta反號;(這里為紅色部分)
delta=sqrt(delta);//delta開方;(這里為紅色部分)
x1=-b/(2*a);//實部
x2=delta/(2*a);//虛部
printf("x1=%.4f+%.4fi x2=%.4f-%.4fi ",x1,x2,x1,x2);
}
getchar();
return 0;
}

結果如下:

方程2

⑵ 用C語言編寫求一元二次方程根的程序,條件要判斷的充分怎麼做

用C語言編寫求一元二次方程根的程序,條件判斷的充分,步驟如下:

void main()
{
float a,b,c,delta;
scanf("%f%f%f",&a,&b,&c);
if(a!=0)
{
delta=b*b-4*a*c;
if(delta==0)
printf("x1=x2=%7.2f",-b/(2*a));
else if(delta>0)
{
printf("x1=%7.2f",(-b+sqrt(delta))/(2*a));
printf("x2=%7.2f",(-b-sqrt(delta))/(2*a));
}
else
{
printf("x1=%7.2f+i%7.2f",-b/(2*a),sqrt(-delta)/(2*a));
printf("x2=%7.2f-i%7.2f",-b/(2*a),sqrt(-delta)/(2*a));
}
}
else if(b!=0)
printf("x=%7.2f",-c/b);
else if(c==0)
printf("0=0,x為任意解
");
else
printf("%f=0,error!",c);
}

⑶ 怎樣用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語言程序來求解下面一個一元二次方程的實數解: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>

intmain()
{
inta,b,c;
intx1,x2;
intd;

printf("請輸入方程的三個系數:");
scanf("%d,%d,%d",&a,&b,&c);

d=b*b-4*a*c;
if(d>0)
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);

printf("方程有兩個不相等的根為:%d,%d ",x1,x2);
}
elseif(d=0)
{
x1=x2=(-b)/(2*a);
printf("方程有兩個相等的根為:%d ",x1);
}
elseif(d<0)
{
printf("方程沒有實根 ");
}

return0;
}

⑹ c語言編寫一元2次方程。

這是我做的
#include<stdio.h>
#include<math.h>
void
main()
//主函數
{
float
a,b,c,delta,x,x1,x2,realpart,imagpart;
//定義a,b,c,delta,x,x1,x2,x3為浮點型
scanf("%f,%f,%f",&a,&b,&c);
//輸入二次方程系數a,b,c的值
delta=b*b-4*a*c;
if(fabs(a)>=1e-6)
//以下為if語句
{
if(fabs(delta)<=1e-6)
printf("此時方程有兩相同實根且為%f\n",x=-b/2/a);//delta為0有一根
else
if(delta>1e-6)
{
x1=(-b+sqrt(delta))/2/a;
x2=(-b-sqrt(delta))/2/a;
printf("x1=%f,x2=%f\n",x1,x2);//delta>0有兩實根
}
else
{
realpart=-b/(2*a);
imagpart=sqrt(-delta)/(2*a);
printf("has
complex
roots:\n");
printf("%f+%f*i\n",realpart,imagpart);
printf("%f-%f*i\n",realpart,imagpart);//delta<0有兩復根
}
}
else
{
if(fabs(b)<=1e-6)
if(fabs(c)<=1e-6)
printf("可輸出任意x值\n");
else
printf("此時方程無意義\n");
else
printf("此時方程有一根為%f\n",x=-c/b);
}
}

⑺ 怎樣用C語言編一個解一元二次方程的程序

這個只能計算已經化簡成aX^2+bX+c=0的一元二次方程


intfun(doublea,doubleb,doublec,double*x1,double*x2)//由於方程既可能無解也可能有兩個解,所以不能直接返回X的值
{
doublep=b*b-4*a*c;//計算Δ
if(p<0)
{
return0;//方程無解,返回0
}
p=√p//求Δ的平方根
*x1=……//用求根公式計算X1
*x2=……//用求根公式計算X2
return1;//方程有解,返回1
}


就這些了,求根公式和求平方根函數我忘了,你自己查一下。頭文件要加一個<math.h>。

⑻ 如何用C語言編寫一程序求解一元二次方程的根

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("方程無實數根 ");

}

main()

{

float a,b,c;

printf("請輸入a,b,c的值 ");

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);

}

⑼ 用C語言編寫求一元二次方程根的程序

#include<stdio.h>
#include<math.h>
intmain()
{
doublea,b,c,disc,x1,x2,realpart,imagpart;
scanf("%lf%lf%lf",&a,&b,&c);
printf("Theequation");
if(fabs(a)<=1e-6)
printf("isnotaquadratic ");
else
{
disc=b*b-4*a*c;
if(fabs(disc)<=1e-6)
printf("hastwoequalroots:%8.4f ",-b/(2*a));
else
if(disc>0)
{
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf("hasdistinctrealroots:%8.4fand%8.4f ",x1,x2);
}
else
{
realpart=-b/(2*a);
imagpart=sqrt(-disc)/(2*a);
printf("hascomplexroots: ");
printf("%8.4f+%8.4fi ",realpart,imagpart);
printf("%8.4f-%8.4fi ",realpart,imagpart);
}
}
return0;
}

⑽ 用C語言中,如何用調用函數編寫求一元二次方程的根

int GetRoot(float a, float b, float c ,double* root){
double delta, deltasqrt ;
delta = b* b - 4*a*c ;
if(delta<0) return 0 ;
deltasqrt = sqrt(delta) ;
if (a!=0.0){
root[0] = (deltasqrt - b)/(2.0*a) ;
root[1] = (-deltasqrt - b)/(2.0*a) ;
}
if (root[0] == root[1]) return 1;
else return 2 ;
}

int main(void){
//計算方程的根
float a = 2.0,b =6.0,c=3.0 ;//a,b,c s是參數
double root[2] ;//root是得到的兩個根
int n = GetRoot(a,b,c,root) ;
if (n<1){
printf("方程無根") ;
}else{
printf("方程的解為:%f,%f",root[0],root[1]) ;
}
}