统计学生成绩:输入一个正整数n,再输入n个学生的成绩,统计五分制成绩的分布。分制成绩到五分制成绩的转换规则:大于等于90分为A,小于90且大于等于80为B,小于80且大于等于70为C,小于70且大于等于60为D,小于60为E。试编写相应程序。
/*
统计学生成绩
作者: a1bum
*/
#include<stdio.h>
#include<malloc.h>
int main(){
int n,i;
int *grade;
int level[5] = {0};
printf("please input count of student: ");
scanf("%d", &n);
// 动态分配内存
grade = (int *) malloc(sizeof(int)*n);
// 初始化成绩
for( i = 0; i < n; i++ ){
scanf("%d", &grade[i]);
printf("%d", grade[i]);
}
// 遍历逐个判断
for( i = 0; i < n; i++){
if( grade[i] >= 90 ){
level[0]++;
}else if( grade[i] >= 80 ){
level[1]++;
}else if( grade[i] >= 70 ){
level[2]++;
}else if( grade[i] >= 60 ){
level[3]++;
}else{
level[4]++;
}
}
// 输出
printf("A: %d\nB: %d\nC: %d\nD: %d\nE: %d", level[0], level[1], level[2], level[3], level[4]);
// 释放动态分配的内存
free(grade);
return 0;
}
#include<stdio.h> int main(void) { int N; int i,x; int a=0,b=0,c=0,d=0,e=0; while(scanf("%d",&N)!=EOF){ for(i=0;i<N;i++){ scanf("%d",&x); if(x>=90){ a++; }else if(x>=80){ b++; }else if(x>=70){ c++; }else if(x>=60){ d++; }else{ e++; } } printf("%d %d %d %d %d\n",a,b,c,d,e); } return 0; }