无法显示结果

时间:2012-08-10 01:00:56

标签: c

我想知道我的代码有什么问题。当用户输入标记时,我无法打印出等级。这是我的代码:

#include<stdio.h> 
int main() 
{ 
    int x,y,z;
    printf("Enter mark for Bahasa:");
    scanf("%d", &x);
    printf("Enter mark for english:");
    scanf("%d", &y);
    printf("Enter mark for Math:");
    scanf("%d", &z);

    if((x > 75) && ( y > 80) && (z > 60))
        printf(" Grade A");
    else if (( x > 75) && ( y < 80) && (z < 60))
        printf ("Grade B");
    else
        printf("honor");         
}

2 个答案:

答案 0 :(得分:2)

为您的printf添加行尾。像这样:

printf("honor\n");

如果在命令行中工作,shell提示符可能会覆盖输出。

答案 1 :(得分:1)

首先你有差距。 if条件中未涵盖的状态。如果用户准确输入75,80和60怎么办?如果我是你,我会使用“&gt; =”而不是“&gt;”和“&lt; =”而不是“&lt;”。如果x是&lt;完全没有涵盖75。

您可以尝试将此语句置于“if”条件之前,以查看您从scanf()获得的确切内容。

printf("My inputs are %d, %d and %d\n",x ,y ,z);

一旦确定您的输入。然后检查你的条件。我认为该行可能存在问题(如前所述x&lt; 75根本没有涉及):

else if (( x > 75) && ( y < 80) && (z < 60));

也许你真正需要的是

(x<=75)

无论哪种方式,程序的示例运行都会有所帮助: - )