西柚西柚 发表于 2020-10-30 20:36:56

新人新人

C语言
2017高考,英语将分为6个等级,A,B,C,D,E,F。现教育部规定英语总分为100分,其中成绩(成绩为整数)在区间为A等级,[80,90)为B等级,[70,80)为C等级,[60,70)为D等级,[40,60)为E等级,[0,40)为F等级。现要你编译一个程序来自动判别高考英语成绩等级。
标准输入,输入的第一行为一个正整数N,表示需要你计算等级的学生成绩数,接下来的N行,每行一个成绩k(0<=k<=100)
#include <stdio.h>
int main()
{
    double a;
   
    scanf("%lf",&a);
   
    if(a>=90&&a<=100)
    {
            printf("A");
        }
    else if(a>=80&&a<90)
    {
            printf("B");
        }
        else if(a>=70&&a<80)
    {
            printf("C");
        }
        else if(a>=60&&a<70)
    {
            printf("D");
        }
        else if(a>=40&&a<60)
    {
            printf("E");
        }
        else if(a>=0&&a<40)
       
                printf("F");
       
    return 0;
}



输入n个不会写><

巴巴鲁 发表于 2020-10-30 21:39:21

用循环啊
for,while,do-while都行

风过无痕1989 发表于 2020-10-30 22:53:45

本帖最后由 风过无痕1989 于 2020-10-30 23:06 编辑

N个成绩可以用循环,后面的可以使用switch() 函数

#include <stdio.h>
int main()
{
    double a;      //多个学生的成绩,使用数组
    int i;
    for(i = 0;i<100;i++)
      scanf("%lf",&a);
   
    for(i = 0;i < 100;i++)
    {
      if(a >= 90 && a <= 100)
      {
            printf("A ");
      }
      else if(a >= 80 && a <90)
      {
            printf("B ");
      }
      else if(a >= 70 && a < 80)
      {
            printf("C ");
      }
      else if(a >= 60 && a < 70)
      {
            printf("D ");
      }
      else if(a >= 40 && a < 60)
      {
            printf("E ");
      }
      else if(a >= 0 && a < 40)
      
            printf("F ");
    }
      
    return 0;
}

西柚西柚 发表于 2020-10-30 23:38:52

风过无痕1989 发表于 2020-10-30 22:53
N个成绩可以用循环,后面的可以使用switch() 函数

没有N的输入呀

风过无痕1989 发表于 2020-10-31 00:15:03

本帖最后由 风过无痕1989 于 2020-10-31 00:24 编辑

西柚西柚 发表于 2020-10-30 23:38
没有N的输入呀

k(0<=k<=100),这个不是吗?让你输入 K个人的成绩呢,这个K没有确定之前,可不就是N嘛

将第9句改为:for(i = 0;i < k;i++) 能理解了吗?

西柚西柚 发表于 2020-10-31 08:31:01

风过无痕1989 发表于 2020-10-31 00:15
k(0

我好像没有改明白

#include <stdio.h>
int main()
{
    double a;      
    int i,n;
    scanf("%d\n",&n);
    for(i = 0;i<=n;i++)
      scanf("%lf",&a);
   
    for(i = 0;i <=n;i++)
    {
      if(a >= 90 && a <= 100)
      {
            printf("A ");
      }
      else if(a >= 80 && a <90)
      {
            printf("B ");
      }
      else if(a >= 70 && a < 80)
      {
            printf("C ");
      }
      else if(a >= 60 && a < 70)
      {
            printf("D ");
      }
      else if(a >= 40 && a < 60)
      {
            printf("E ");
      }
      else if(a >= 0 && a < 40)
      
            printf("F ");
    }
      
    return 0;
}

风过无痕1989 发表于 2020-10-31 09:12:06

西柚西柚 发表于 2020-10-31 08:31
我好像没有改明白

#include


你的程序第6行有问题:scanf("%d\n",&n); 你的目的是想图稿有多少个人的成绩,但是,scanf()函数中,除了控制符之外,最好别添加任何的其他字符,你却加了一个回车,这样的语句,在程序中容易出错。你若一定要输入完 n 以后换行,可以写成:

scanf("%d",&n);
printf("\n");

西柚西柚 发表于 2020-10-31 12:31:31

风过无痕1989 发表于 2020-10-31 09:12
你的程序第6行有问题:scanf("%d\n",&n); 你的目的是想图稿有多少个人的成绩,但是,scanf()函数中,除了 ...

帮孩子再看看吧
输出结果是错的
#include <stdio.h>
int main()
{
    double a;      
    int i,n;
    scanf("%d",&n);
    for(i = 0;i<n;i++)
      scanf("%lf",&a);
   
    for(i = 0;i <n;i++)
    {
      if('a'>= 90 && 'a' <= 100)
      {
            printf("A ");
      }
      else if('a'>= 80 && 'a'<90)
      {
            printf("B ");
      }
      else if('a' >= 70 && 'a' < 80)
      {
            printf("C ");
      }
      else if('a'>= 60 && 'a' < 70)
      {
            printf("D ");
      }
      else if('a' >= 40 && 'a' < 60)
      {
            printf("E ");
      }
      else if('a' >= 0 && 'a' < 40)
      
            printf("F ");
    }
      
    return 0;
}

风过无痕1989 发表于 2020-10-31 12:46:11

西柚西柚 发表于 2020-10-31 12:31
帮孩子再看看吧
输出结果是错的
#include


你这样的程序,运行当然是错的啦!

你定义的是一个数组,可你在下面的循环判断中,却将数组名作为变量在使用,换句话说:不用使用 a,要使用 a[ i ]

风过无痕1989 发表于 2020-10-31 12:51:57

我明白了,你使用数组,它却没有如愿显示出来,却变成了斜体。那是因为你没有使用代码功能的原因

https://xxx.ilovefishc.com/album/202009/19/115416qe98e8zc9nbknb9z.jpg
页: [1]
查看完整版本: 新人新人