㈠ 用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);
}