㈠ 用c語言 二次方程根的程序。
如果你想學好C語言的話,最好養成畫程序圖的習慣,而且要多練習,最好是把你編好的程序運行一下,在運行和調試中不斷摸索,這樣才會深入學習C語言。祝你學習進步!早日成為活用C語言的能手。
#include <stdio.h>
#include <math.h>
int main()
{
float a,b,c,i,r1,r2;
printf("請輸入三個系數:(輸入格式:a,b,c)");
scanf("%f,%f,%f",&a,&b,&c);
i=b*b-4*a*c;
if(i>0)
{
r1=(-b+sqrt(i))/(2*a);
r2=(-b-sqrt(i))/(2*a);
printf("方程有兩不等實根:");
printf("%f,%f",r1,r2);
}
else if(i==0)
{
r1=-b/(2*a);
r2=-b/(2*a);
printf("方程有兩相等實根:");
printf("%f,%f",r1,r2);
}
else
{
r1=(-b)/(2*a);
r2=sqrt(-i)/(2*a);
printf("方程有兩復根:");
printf("%f+%fi,%f-%fi",r1,r2,r1,r2);
}
return 0;
}
㈡ c語言一元二次方程求解(包含復根)
藍色的那一句,1條語句,3個錯誤。
1、d<0時,sqrt(d)無意義,應該是sqrt(-d)
2、i不是變數
3、2*a應該加括弧括起來。
語句修改為:
printf("x1=%.2f+%.2fi,x2=%.2f-%.2fi",p,sqrt(-d)/(2*a),p,sqrt(-d)/(2*a));
另外,你對p的求解也是錯的,應該是p=-b/(2*a)
2*a應該用括弧括起來。
㈢ c語言 求一元二次方程的根(含復根)
#include "stdio.h"
#include "math.h"
int main(void)
{int a,b,c;
double d,e,f;
scanf("%d %d %d",&a,&b,&c);
d=a, e=b, f=c;
if (a==0)
if (b==0)
{printf("非法方程,請重新輸入a,b,c「);
scanf("%d %d %d",&a,&b,&c);d=a, e=b, f=c;}
else
if (b*b-4*a*c==0)
printf("x1=x2=%.6f\n",0-e/(2*d));
else
if (b*b-4*a*c>0)
printf("x1=%.6f\nx2=%.6f\n",(-e+sqrt(e*e-4*d*f))/(2*d),(-e-sqrt(e*e-4*d*f))/(2*d));
else
{
【5】;
【6】
printf("x1=%.6f+%.6fi\nx2=%.6f+%.6fi\n",-e/(2*d),sqrt(4*d*f-e*e)/(2*d),-e/(2*d),-sqrt(4*d*f-e*e)/(2*d));
}
5,6沒法填
㈣ c語言函數求方程的根
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
float a,b,c,x,x1,x2,d;
scanf("%f %f %f",&a,&b,&c);
d=b*b-4*a*c;
if(a==0)
{
if(b==0)
{
if(0==c)
{
printf("等式0!\n");
}
else
{
printf("輸入錯誤!\n");
}
}
else
{
printf("只能構成一元一次方程,x=%.6f\n",0==-(float)c/b ? 0 : -(float)c/b);
}
}
else
{
if(d<0)
{
x1=(-b+sqrt(-d))/(2.0*a);
x2=(-b-sqrt(-d))/(2.0*a);
printf("x1=%.6f+%.6fi\nx2=%.6f-%.6fi\n",(-b)/(2.0*a),sqrt(-d)/(2.0*a),(-b)/(2.0*a),sqrt(-d)/(2.0*a));
}
else if(d==0)
{
printf("x1=x2=%.6f\n",(-b)/(2.0*a));
}
else
{
x1=(-b+sqrt(d))/(2.0*a);
x2=(-b-sqrt(d))/(2.0*a);
printf("x1=%.6f\nx2=%.6f\n",x1,x2);
}
}
system("PAUSE");
return EXIT_SUCCESS;
}
㈤ C語言編程 求一元二次方程的根 !!!
#include<stdio.h>
#include<math.h>
voidmain()
{
floata,b,c,dlt;
scanf("%f%f%f",&a,&b,&c);
if(a)
{
dlt=b*b-a*c*4;
if(dlt>0)
printf("x1=%.2f x2=%.2f",(-b+sqrt(dlt))/(a*2),(-b-sqrt(dlt))/(a*2));
elseif(dlt<0)
printf("x1=%.2f+%.2fi x2=%.2f-%.2fi",-b/(a*2),abs(sqrt(-dlt)/(a*2)),-b/(a*2),abs(sqrt(-dlt)/(a*2)));
elseprintf("x=%.2f",-b/(a*2));
}
else
{
if(b)c?printf("x=%.2f",-c/b):printf("x=%.2f",abs(-c/b));
elsec?printf("NotAnEquation"):printf("ZeroEquation");
}
}
㈥ c語言 求一元二次方程的根,可以為復根 。求大神幫助
如果跟為復根且b等於0,那x1就成了-0.00。最後一個else內改為:
x1=-b/(2*a);
x2=sqrt(-delt)/(2*a);
x2=(x2>0)?x2:-x2;
if(b!=0)
{
printf("%.2f+%.2fi ",x1,x2);
printf("%.2f-%.2fi ",x1,x2);
}
else
{
printf("0.00+%.2fi ",x2);
printf("0.00-%.2fi ",x2);
}