考试用 有哪位大神会 拜托了!!
(1) 统计不及格人数
(2) 求平均分
(3) 统计平均分之上(包括等于平均分)人数
(4) 统计各个分数段的学生人数及其所占比例(分数段为:优秀90~100,良好80~89,一般60~79,不及格60以下)。
要求:将以上每一步骤的结果均输出,验证程序是否正确实现题目要求。
注:成绩为整数,成绩个数不超过20个。
#include <stdio.h>
int main() {
int array[20], length, i;
int tmp, sum = 0, average;
int A = 0, B = 0, C = 0, D = 0, cnt = 0;
for (i = 0; ; ++i) {
scanf("%d", &tmp);
if (tmp < 0) {
break;
}
array[i] = tmp;
sum += array[i];
if (array[i] >= 90) {
++A;
} else if (array[i] >= 80) {
++B;
} else if (array[i] >= 60) {
++C;
} else {
++D;
}
}
length = i;
//(1)
putchar('\n');
printf("%d\n", D);
//(2)
putchar('\n');
average = sum/length;
printf("%d\n", average);
//(3)
putchar('\n');
for (i = 0; i < length; ++i) {
if (array[i] >= average) {
++cnt;
}
}
printf("%d\n", cnt);
//(4)
putchar('\n');
printf("优秀:%d人,占%%%.2lf\n", A, 1.0*A/length*100);
printf("良好:%d人,占%%%.2lf\n", B, 1.0*B/length*100);
printf("一般:%d人,占%%%.2lf\n", C, 1.0*C/length*100);
printf("不及格:%d人,占%%%.2lf\n", D, 1.0*D/length*100);
return 0;
}
int main() {
int array[20], length, i;
int tmp, sum = 0, average;
int A = 0, B = 0, C = 0, D = 0, cnt = 0;
for (i = 0; ; ++i) {
scanf("%d", &tmp);
if (tmp < 0) {
break;
}
array[i] = tmp;
sum += array[i];
if (array[i] >= 90) {
++A;
} else if (array[i] >= 80) {
++B;
} else if (array[i] >= 60) {
++C;
} else {
++D;
}
}
length = i;
//(1)
putchar('\n');
printf("%d\n", D);
//(2)
putchar('\n');
average = sum/length;
printf("%d\n", average);
//(3)
putchar('\n');
for (i = 0; i < length; ++i) {
if (array[i] >= average) {
++cnt;
}
}
printf("%d\n", cnt);
//(4)
putchar('\n');
printf("优秀:%d人,占%%%.2lf\n", A, 1.0*A/length*100);
printf("良好:%d人,占%%%.2lf\n", B, 1.0*B/length*100);
printf("一般:%d人,占%%%.2lf\n", C, 1.0*C/length*100);
printf("不及格:%d人,占%%%.2lf\n", D, 1.0*D/length*100);
return 0;
}
温馨提示:答案为网友推荐,仅供参考