1

我想知道我的代码有什么问题。当用户输入分数时,我无法打印出成绩。这是我的代码:

#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");         
}
4

2 回答 2

2

将行尾添加到您的printf. 像这样:

printf("honor\n");

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

于 2012-08-10T01:45:49.913 回答
1

首先你有一个差距。if 条件未涵盖的状态。如果用户准确输入 75、80 和 60 会怎样?如果我是你,我会使用 ">=" 而不是 ">" 和 "<=" 而不是 "<"。如果 x < 75 也根本不包括在内。

您可能会尝试将此语句放在“if”条件之前,以查看您究竟从中得到了什么scanf()

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

一旦你确定你的输入。然后检查你的条件。我认为那条线可能有问题(如前所述 x<75 根本没有涉及):

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

也许你真正需要的是

(x<=75)

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

于 2012-08-10T02:48:01.927 回答