我想知道我的代码有什么问题。当用户输入标记时,我无法打印出等级。这是我的代码:
#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");
}
答案 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)
无论哪种方式,程序的示例运行都会有所帮助: - )