这与昨天的练习类似,只是改为实数类型而已。
我的代码如下:
#include <stdio.h>
int main(){
double a;
double b;
puts("请输入两个整数。");
printf("整数A:"); scanf("%lf",a);
printf("整数B:"); scanf("%lf",b);
printf("A是B的 %f%%。",a/b*100);
return 0;
}
如果你仔细看了,可能就会发现 scanf()的第二个实参缺少了&。
此时运行如下图
问题代码运行
当扫描第一个实数时,程序意外停止。
最初我并未发现代码的错误,可能是写得太累了。我转而考虑是否可能是兼容性问题,并尝试地更改设置。最后脑子一清醒,发现是 scanf()错了,我也是很囧。。。
缺少取值运算符&时,编译通过、程序运行,仅在扫描第一个实数时停止的现象,也算是唯一稍微让我有点兴趣的了。
照例贴上修改过的正确代码:
#include <stdio.h>
int main(){
double a;
double b;
puts("请输入两个整数。");
printf("整数A:"); scanf("%lf",&a);
printf("整数B:"); scanf("%lf",&b);
printf("A是B的 %f%%。",a/b*100);
return 0;
}
网友评论