答案:#include "stdio.h"
#include "math.h"
void main()
{
printf("求方程ax^2+bx+c=0的根:\n");
L: printf("请分别输入a,b,c的值。\n");
double a,b,c,x1,x2,x,y;
char z;
printf("输入a,b,c=");
scanf("a=%lf,b=%lf,c=%lf\n,&a,&b,&c");
printf("你所输入的方程为%lfx^2+%lfx+%lf=0。\n",a,b,c);
M: printf("是否正确?(是y\否n)\n");
scanf("%c",&z);
if (z=='n')
goto L;
else if (z=='y')
{
if ((b*b-4*a*c)>0)
x1=(-b+sqrt(b*b-4*a*c))/(2*a),
x2=(-b-sqrt(b*b-4*a*c))/(2*a),
printf("有两个不同的实根:\nx1=%lf\nx2=%lf\n",x1,x2),
printf("\n");
if ((b*b-4*a*c)==0)
x1=-b/(2*a),
printf("有两个相同的实根:\nx1=x2=%lf\n",x1),
printf("\n");
if ((b*b-4*a*c)<0)
x=-b/(2*a),
y=sqrt(4*a*c-b*b)/(2*a),
printf("有两表个不同的曾根:\nx1=%lf+%lfi\nx2=%lf-%lfi\n",x,y,x,y),
printf("\n");
goto L ;
}
else printf("请正确输入:\n");
goto M;
}
参考这个: http://wenwen.zzzyk.com/z/q100250051.htm?rq=131037514&ri=4&uid=646203846&ch=w.xg.dllyjj#include<stdio.h>
#include<math.h>
void main()
{
float a,b,c,n;
scanf("%f %f %f",&a,&b,&c);
n=b*b-4*a*c;
if(n>0)
printf("x1=%f x2=%f\n",(-b+sqrt(n))/(2*a),(-b-sqrt(n))/(2*a));
if(n==0)
printf("x1=x2=%f\n",(-b)/(2*a));
if(n<0)
printf("无解\n");
}
先定义一个变量(浮点型的)
main()
{
flont a,b,c,d;/*定义一个浮点型的常量*/
scanf("%f\n %f\n %f",&a,&b,&c);
n=b*b-4*a*c;
if(n>0)
printf("x1=%f x2=%f\n",(-b+sqrt(n))/(2*a),(-b-sqrt(n))/(2*a));
if(n==0)
printf("x1=x2=%f\n",(-b)/(2*a));
if(n<0)
printf("无解\n");
getch();
}
#include<stdio.h>
#include<math.h>
int main(void)
{
float a,b,c,diata,x1,x2,firstp;
puts("Please input a b c like 1.2 3 4");
scanf("%f%f%f",&a,&b,&c);
if(a==0)
printf("Input error");
else
{
diata=b*b-4*a*c;
firstp=-2*a/b;
if(fabs(diata)<1e-6)
{
printf("有两个相等的根:x1=x2=%f",firstp);
}
else if(diata>1e-6)
{
x1=firstp+sqrt(diata)/(2*a*c);
x2=firstp-sqrt(diata)/(2*a*c);
printf("有两个不相等的根:x1=%.2f,x2=%.2f",x1,x2);
}
else
{
x1=sqrt(-diata)/(2*a*b);
printf("有两个复根:x1=%.2f+%.2fi,x2=%.2f-%.2fi",firstp,x1,firstp,x1);
}
}
getch();
}
上一个:求高手帮忙写一个c语言的心理测试程序
下一个:C语言问题:内存的分配方式有哪几种?