这是我输入的代码。我是编程的初学者,无法理解为什么计算机会忽略返回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;
}
答案 0 :(得分:4)
您必须在scanf
语句中更改格式说明符。由此:
scanf("%d",&grade);
到此:
scanf("%f",&grade);
因为%d
用于integer's
而%f
用于float
。
有关scanf()
的更多信息,请参阅:http://www.cplusplus.com/reference/cstdio/scanf/
答案 1 :(得分:-1)
scanf
格式字符串应为"%f"
(float
)而不是"%d"
(int
)。 C ++会盲目地将int
存储在为float
分配的内存中。然后其他代码将尝试将这些位解释为float,这将得到奇怪的结果。