输入10个成绩,将其各分段人数赋值到一个一维数组中,将各分数赋值到另一个一维数组中将两个数组输出
一个简单的实现,如下:
#include <stdio.h>
int main(void){
double grade[10];
printf("请输入10个成绩,以空格分隔:\n");
int i =0;
//获取10个成绩输入
while(i<10){
scanf("%lf",&grade[i]);
i++;
}
int j;
double temp;
//分数按从低到高排序 ,用于后面判断各区间分数人数
for(i=0;i<10;i++){
for(j=i;j<10;j++){
if(grade[i]>grade[j]){
temp = grade[i];
grade[i] = grade[j];
grade[j] = temp;
}
}
}
int part[3]={0,0,0};
//按区间统计人数
for(i=0;i<10;i++){
if(grade[i]<60){
part[0]++;
}else if(grade[i]>=60&&grade[i]<80){
part[1]++;
}else if(grade[i]>=80&&grade[i]<=100){
part[2]++;
}
}
//按区间打印人数和分数
for(i=0;i<3;i++){
if(i==0){
printf("分数低于60分,不及格的有%d人,分数分别是:",part[i]);
for(j=0;j<part[0];j++){
printf("%.1lf ",grade[j]);
}
}else if(i==1){
printf("分数60到80分,成绩良好的有%d人,分数分别是:",part[i]);
for(j=part[0];j<part[0]+part[1];j++){
printf("%.1lf ",grade[j]);
}
}else{
printf("分数80到100分,成绩优秀的有%d人,分数分别是:",part[i]);
for(j=part[0]+part[1];j<10;j++){
printf("%.1lf ",grade[j]);
}
}
}
return 0;
}