#include
#include
#define ARR_LEN 255 /*数组长度上限*/
#define elemType int /*元素类型*/
/* 学生信息数据结构 */
typedef struct stuElem {
float score; /* 成绩 */
char lv; /* 成绩等级 */
} stuElem;
int main (void) {
stuElem stu[ARR_LEN];
float scoreTmp;
char lv;
int stuCnt = 0;
int i = 0;
printf ("输入成绩(输入-1结束)\n");
do {
scanf ("%f", &scoreTmp);
if (scoreTmp == -1) /* 输入-1结束 */
break;
if (scoreTmp<0 || scoreTmp>100) {
printf ("成绩数值应在0~100之间!请重新输入!\n");
continue; /* 直接执行下一次循环,以重新输入 */
}
stu[i].score = scoreTmp; /* 成绩存入数组 */
i++;
} while (1);
stuCnt = i;
for (i=0; i switch ((int)stu[i].score/10) { /* 成绩除以10取整 */
case 10:
case 9: stu[i].lv = 'A'; break;
case 8: stu[i].lv = 'B'; break;
case 7: stu[i].lv = 'C'; break;
case 6: stu[i].lv = 'D'; break;
default : stu[i].lv = 'E'; break;
}
}
printf ("共%d名学生:\n", stuCnt);
printf ("序号\t成绩\t等级\n");
for (i=0; i printf ("%d\t%.2f\t%c\n", i+1, stu[i].score, stu[i].lv);
getch (); /* 屏幕暂留 */
return 0 ;
}