这是我输入的代码。我是个编程新手,不明白为什么计算机会忽略返回A或B的命令
#include <stdio.h>
int main (void){
float grade;
printf ("Enter grade");
scanf ("%d",&grade);
if (grade >= 90) {
printf ("A\n");
}
else {
printf ("B\n");
}
return 0;
}发布于 2015-01-26 07:14:42
您必须更改scanf语句中的格式说明符。从这个开始:
scanf("%d",&grade);要这样做:
scanf("%f",&grade);因为%d是用于integer's的,%f是用于float的。
有关scanf()的更多信息,请访问:http://www.cplusplus.com/reference/cstdio/scanf/
发布于 2015-01-26 07:17:00
scanf格式字符串应为"%f" (float),而不是"%d" (int)。C++将在为int分配的内存中盲目地存储float。然后,其他代码将尝试将这些位解释为浮点数,这将得到奇怪的结果。
https://stackoverflow.com/questions/28142698
复制相似问题