C语言问题错在哪里 高手指教下

来源:百度知道 编辑:UC知道 时间:2024/05/12 16:11:53
#include <stdio.h>
int main()
{ float a,b;
double x,y;
scanf("%f.%e,%lf,%le",&a,&b,&x,&y);
printf("%f,%e,%lf,%le\n",a,b,x,y);
getch();
return 0 ;
}
我打进去3.1415,314.15,123.456,12345.6
书上的出的是3.151500,3.14150e+02,123.456000,1.23456e+05
电脑上出的
电脑上出来的跟书里不一样~怎么回事 ~高手指教下

如下:
#include <stdio.h>
#include<conio.h>
int main()
{ float a,b;
double x,y;
scanf("%f,%e,%lf,%le",&a,&b,&x,&y);
printf("%f,%e,%lf,%le\n",a,b,x,y);
getch();
return 0 ;
}

将scanf("%f.%e,%lf,%le",&a,&b,&x,&y);这一句的%f后的点换成逗号,运行结果如下
3.1414,314.15,123.456,12345.6
3.141400,3.141500e+002,123.456000,1.234560e+004
Press any key to continue

scanf("%f.%e,%lf,%le",&a,&b,&x,&y);
问题在这里.
如果你想正常输入3.1415,314.15,123.456,12345.6
就必须改成
scanf("%f,%e,%lf,%le",&a,&b,&x,&y);

要么输入 3.1415. 314.15,123.456,12345.6

scanf输入要符合 控制格式

562738607 - 高级魔法师 五级

先发现了问题所在,正确。

你的电脑出的是什么啊?
没错啊···,%f 小数点后6位有效。如果你不限定输出个数,小数点后都应该输出6个数啊

输入语句有问题
scanf("%f.%e)里面是逗号,而不是点。