我需要有关以下代码的帮助。
#include<stdio.h>
#include<ctype.h>
int No_Of_Students()
{
int n;
printf("\nEnter the number of students : ");
scanf("%d",&n);
return n;
}
void Grading(int n)
{
int m70=0,m50=0;
printf("\nEnter the Grade of %d students one by one :\n ",n);
while(n>0)
{
if(Grade_input())
m70++;
else
m50++;
n--;
}
display(m70,m50);
}
int Grade_input()
{
char Grade;
Grade=getchar();
Grade=toupper(Grade);
if(Grade=='S'|| Grade=='A'||Grade=='B')
return 1;
else
if(Grade=='E'||Grade=='F')
return 0;
}
void display(int s,int f)
{
printf("\n%d no of students have scored more than 70% ",s);
printf("\n%d no of students have scored less than 50% ",f);
}
int main()
{
int N;
N=No_Of_Students();
Grading(N);
return 0;
}
为什么不接受指定的输入?例如,如果输入为3,则只需输入一次即可立即返回。
其中有任何错误吗?
在所有函数之前在代码中添加函数原型
int No_Of_Students();
void Grading(int n);
int Grade_input();
void display(int s,int f);
并在Grade=getchar();
功能的Grade_input()
之前添加此循环
while((ch=getchar())!='\n'&&ch!=EOF);
这是刷新标准输入。