⑴ 編寫求解一元二次方程的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]) ;
}
}