用户输入是否限制为奇数?代码有什么问题?

问题描述 投票:0回答:1

我需要有关以下代码的帮助。

  #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,则只需输入一次即可立即返回。

其中有任何错误吗?

c scanf
1个回答
0
投票

在所有函数之前在代码中添加函数原型

 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);

这是刷新标准输入。

© www.soinside.com 2019 - 2024. All rights reserved.