程序在Dev-C ++中关闭

时间:2015-01-25 23:12:44

标签: c syntax

这是我输入的代码。我是编程的初学者,无法理解为什么计算机会忽略返回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;
    }

2 个答案:

答案 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,这将得到奇怪的结果。