大家来看看我这个c语言程序哪儿错了?

来源:百度知道 编辑:UC知道 时间:2024/06/21 17:08:10
#include <stdio.h>
#include <math.h>
int main()
{double a,b,c,t,y,z,max;
int d;
printf("请选择求解目标:1-二次函数零点,2-二次函数最大(小)值。按回车确认。\n");
scanf("%d",&d);
printf("请输入二次项系数,一次项系数,常数项,分别以回车确认。\n");
scanf("%f%f%f",a,b,c);
if(d!=1&&d!=2) printf("请选择正确的模式。\n");
else {if(a!=0) {if(d==1) {t=b*b-4*a*c;y=(-b+pow(t,0.5))/(2*a);z=(-b-pow(t,0.5))/(2*a);
if(t>0) printf("此二次函数零点为x=%f和x=%f",y,z);
else if(t==0) printf("此二次函数的零点为x=%f",y);
else printf("此二次函数没有零点");}
if(d==2) {max=(4*a*c-pow(b,2))/(4*a);
if(a>0) printf("此二次函数的最小值为:min=%f",max);
else printf("此二次函数的最大值为:max=%f",max);
}}
else printf("您所输的函数不是二次函数。\n");
}
printf("#####感谢您的使用!#####");
getch();
return 0;}
郁闷死了,运行到输入a,b,c的时候输入一个数按回车,系统就提示程序错误。可我怎么也找不出哪儿错了~~~

scanf("%f%f%f",a,b,c);
所有f都改为lf,还要加取地址符,即
scanf("%lf%lf%lf",&a,&b,&c);

我把楼主程序仔细运行下~检查报错~
scanf("%f%f%f",a,b,c);
此处一定要改成scanf("%f%f%f",&a,&b,&c);
虽然未报错 但运行时不成功..
倒数第二行getch(); 改成getchar();
DEV C++库函数中没这个 貌似..
完毕.

scanf("%f%f%f",a,b,c); ----> scanf("%f%f%f",&a,&b,&c);

输入时要特别注意!

scanf("%f%f%f",a,b,c); 这句改成scanf("%f%f%f",&a,&b,&c);

用 VC++ 6.0 编译的 scanf("%f%f%f",a,b,c); 这句有问题 应该是
scanf("%f%f%f",&a,&b,&c);
还有倒数第二行 getch();在VC环境下 不能通过 ,但改为 getchar();运行正常!

getch();放在最后