输入一个同学的考试成绩X,输出其成绩对应的等级。X的范围为0-100的整数,90分及以上等级为A;大于等于80,小于90为B;大于等于60,小于80为C;小于60为F。

输入格式:第一行为一个整数n,表示之后会输入n个成绩。
第二行为n个空格分开的整数,表示各科成绩。
输出格式:输出一行,分别对应各科成绩的等级。

每次写都是只输出第一个成绩的等级,输入再多的也没用,刚刚开始学C语言就被这个难住了。
谢谢!

可以贴一下你写的代码看看,可能是循环部分出了问题
示例代码如下:

#include <stdio.h>
#define MAX_NUM 1000
const char rank[11] = "FFFFFFCCBAA";
int main(int argc, char const *argv[])
{
    int n, score[MAX_NUM];
    scanf("%d", &n);
    // printf("%d",n);
    for (int i = 0; i < n; i++)
    {
        scanf("%d", &score[i]);
    }
    for (int i = 0; i < n; i++)
    {
        printf("%c", rank[score[i] / 10]);
        if (i < n - 1)
        {
            printf(" ");
        }
    }

    return 0;
}

img

参考:


#include <stdio.h>

/*
    1.输入20个学生的C语言成绩,
    2.统计60分以下的人数
    3.统计80分以上的人数 
*/
//常量:数组的大小 
#define SIZE 10
void main3(){
    int i;
    int cnt1=0,cnt2=0;
    int a[SIZE];
    for(i=0;i<SIZE;i++){
        printf("请输入第%d个学生的成绩:",i+1);
        scanf("%d",&a[i]); //动态赋值 ,给每一个元素赋值 
        //统计60分以下的人数
        if(a[i]<60){
            cnt1++;
        } 
        //统计80分以上的人数 
        if(a[i]>=80){
            cnt2++;
        }
    }
    printf("60分以下共有%d人,80分及以上共有%d人.\n",cnt1,cnt2);
}

供参考:

#include<stdio.h>
#define M 10
int main()
{
    int N, i;
    float x[M] = { 0 };
    scanf("%d", &N);
    printf("请输入%d门课的成绩:",N);
    for (i = 0; i < N; i++)
        scanf("%f", &x[i]);
    for (i = 0; i < N; i++)
    {
        switch ((int)x[i]/ 10) {
        case 10:
        case  9:printf("A ");
            break;
        case  8:printf("B ");
            break;
        case  7:printf("C ");
            break;
        case  6:printf("D ");
            break;
        case  5:case  4:
        case  3:case  2:
        case  1:case  0:printf("E ");
            break;
        default:printf("error ");
            break;
        }
    }
    return 0;
}