c语言初学者地一个小问题

来源:百度知道 编辑:UC知道 时间:2024/05/17 22:23:45
有关于一元二次方程求解
老是运行后显示divid error

#include"math.h"
main()
{ int a,b,c;
float D,x,x1,x2;
printf("Please input a,b,c!");
scanf("%f%f%f",&a,&b,&c);
D=b*b-4*a*c;
x=-b/(2*a);
x1=sqrt(b*b-4*a*c)/(2*a)-b/(2*a);
x2=-sqrt(b*b-4*a*c)/(2*a)-b/(2*a);
if(D>0)
printf("%f%f",x1,x2);
else if(D==0)
printf("%f",x);
else if(D<0)
printf("Error");
}
一楼老兄
,怎么改呢

二楼老兄
之前都没问题
就是运行

改成 float a,b,c,D,x,x1,x2;
运行后DOMAIN error

#include <stdio.h>
#include"math.h"
main()
{
int a,b,c; //注意,这里你用的int型
char ch;
float D,x,x1,x2;
printf("Please input a,b,c!\n");
scanf("%d%d%d",&a,&b,&c);//所以这里得用%d
D=b*b-4*a*c;
x=-b/(2*a);
x1=sqrt(b*b-4*a*c)/(2*a)-b/(2*a);
x2=-sqrt(b*b-4*a*c)/(2*a)-b/(2*a);
if(D>0)
printf("x1=%f\nx2=%f",x1,x2);
else if(D==0)
printf("%f",x);
else if(D<0)
printf("Error");
ch=getchar();//去掉回车字符
getch(); //暂停显示结果
}
变量类型与格式要统一

统一变量类型

int a,b,c;
float D,x,x1,x2;
printf("Please input a,b,c!");
scanf("%f%f%f",&a,&b,&c);
你的a b c是整形啊

int a,b,c;
float D,x,x1,x2;
printf("Please input a,b,c!");
scanf("%f%f%f",&a,&b,&c);
你的a b c是整形啊
上面的是对的
int a,b,c;改成float a,b,c;
或者scanf("%