输入格式:第一行为一个整数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;
}
参考:
#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;
}