题目描述
将输入的5个成绩转换成对应的等级输出
输入
输入5个成绩值
输出
输出5个字符等级,用空格分隔
样例输入
90 80 70 60 50
样例输出
A B C D E
代码如下:
#include<stdio.h>
void initarray(int a[]);
void pntarray(char b[]);
void scoremap(int inscore[],char outscore[]);
int main()
{
int in[5],i;
char out [5];
initarray(in);//调用函数输入成绩
scoremap(in,out);//调用函数将数字转化为字符
pntarray(out);//调用函数输出字符
}
void initarray(int a[])
{
int i;
for(i=0;i<5;i++)
scanf("%d",&a[i]);
}
void scoremap(int inscore[],char outscore[])
{
int i;
char *p=outscore;//定义指针并初始化使之指向字符数组
//给成绩分等级循环五次意思是输出五个成绩判断他的等级
for(i=0;i<5;i++)
{
switch(inscore[i]/10)
{
case 10:
case 9:p[i]='A';break;
case 8:p[i]='B';break;
case 7:p[i]='C';break;
case 6:p[i]='D';break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:p[i]='E';break;
default :printf("error\n");break;
}
}
}
void pntarray(char b[])
{
int i=0;
for(i=0;i<5;i++)
{
printf("%c ",b[i]);
}
}
需要注意的是:
1.void scoremap(int inscore[],char outscore[]);转换结果,注意outscore数组要用p 指针访问,使用指针将其地址保存起来2.分数是0-100 如果写五个分数那就只能判断那个分段的等级 ,但一般情况是1-100的分值
3.switch 函数切记不要忘记break;