为什么我不能在我的代码中添加有关为学生评分的其他字符?

时间:2019-09-14 16:58:02

标签: c

在下面的代码中, a,b,c,d,e 是“对象”(与类中一样),变量 perc 是“主题”。

我无法弄清楚代码中的错误,在写第一个主题的标记时按Enter键之后我什么也不能写。

//Calculating the grade of students

#include<stdio.h>

main()
{

int a,b,c,d,e  ;
printf("Enter the marks of the following subjects \n") ;
scanf("%d ,%d ,%d ,%d ,%d"), &a,&b,&c,&d,&e ;

float perc ;
perc= (a+b+c+d+e)/5 ;

printf("Your percentage is %f \n", perc);

if (perc>90)
printf("You have A grade") ;
else if (perc>70)
printf("You have B grade") ;
else if (perc>50)
printf("You have C grade") ;
else if (perc>35)
printf("You have D grade") ;
else if (perc<35)
printf("Failed") ;

}

不胜感激

4 个答案:

答案 0 :(得分:1)

问题是 scanf()在读取多个 int的中的用法 为此,您需要阅读 scanf()

中的“,”

因此替换:

scanf("%d ,%d ,%d ,%d ,%d"), &a,&b,&c,&d,&e;

在:

scanf("%d %d %d %d %d", &a,&b,&c,&d,&e);

,然后除以5.0而不是5:

perc= (a+b+c+d+e)/5.0 ;

现在它将按预期工作。

P.S。您在放置“)”时也遇到了问题

答案 1 :(得分:0)

您的代码几乎没有错误,

scanf("%d ,%d ,%d ,%d ,%d"), &a,&b,&c,&d,&e;

应为scanf("%d %d %d %d %d", &a, &b, &c, &d, &e);

并且perc = (a+b+c+d+e)/5;应该是perc = (a+b+c+d+e)/5.0;

答案 2 :(得分:0)

这是一个语法问题。将您的scanf行替换为以下内容:

scanf("%d %d %d %d %d", &a, &b, &c, &d, &e);

答案 3 :(得分:0)

您在格式字符串中使用非空白字符,。根据{{​​3}},格式字符串中的每个此类字符都会消耗来自输入流的一个完全相同的字符,如果流中的下一个字符比较不相等,则会导致函数失败。因此,您的输入格式应严格遵循以下模式any-number, any-number, any-number, any-number, any-number,并且只有在其打印后,您才应按Enter键。在其他情况下,您的程序将失败