#include <stdio.h>
#define N 3
int ave(int a);
int i, max, max_i;
float a, b, c, d, e, f;
int score[N];
char name[N][10];
int number[N];
int main () {
int counter1 = 0, counter2 = 0, counter3 = 0, counter4 = 0, counter5 = 0, counter6 = 0;
int F[N], AboveAvg[N];
for (i = 0; i < N; i++) {
printf ("名字:\t");
scanf ("%s", &name[i]);
printf("成绩:\t");
scanf("%d", &score[i]);
printf("学号:\t");
scanf("%d", &number[i]);
if (score[i] < 0)
break;
else if (score[i] >= 90)
counter1++;
else if (score[i] >= 80)
counter2++;
else if (score[i] >= 70)
counter3++;
else if (score[i] >= 60)
counter4++;
else {
F[counter5] = i; //记录不及格的人的下标 方便后续遍历
counter5++;
}
}
int p, j;
f = ave(a);
for (p = 0; p < N; p++) {
if (score[p] > f) {
AboveAvg[counter6] = p; //同理
counter6++;
}
}
max = score[0];
max_i = 0;
for (j = 0; j < N; j++) {
if (max < score[j]) {
max = score[j];
max_i = j;
}
}
a = (counter1 * 100.0 / N);
b = (counter2 * 100.0 / N);
c = (counter3 * 100.0 / N);
d = (counter4 * 100.0 / N);
e = (counter5 * 100.0 / N);
printf("最高分是:%d分,其学号为:%d\n", max, number[max_i]);
printf("不及格有:%d人,所占百分比为:%.2f%%\n", counter5, e);
printf("不及格的人有:");
for ( i = 0; i < counter5; i++) {
printf("%s\t", name[i]);
}
printf("\n分数>=90占百分比为:%.2f%%\n", a);
printf("90>分数>=80占百分比为:%.2f%%\n", b);
printf("80>分数>=70占百分比为:%.2f%%\n", c);
printf("70>分数>=60占百分比为:%.2f%%\n", d);
printf("在平均分数之上的有:%d人\n", counter6);
printf("高于平均分的人有:");
for ( i = 0; i < counter6; i++) {
printf("%s\t", name[i]);
}
printf("\n");
return 0;
}
int ave(int a) {
int total = 0, i, b;
for (i = 0; i < N; i++) {
total += score[i];
}
b = total / N;
return b;
}
#include <stdio.h>
#define N 3
int ave(int a);
int i, max, max_i;
float a, b, c, d, e, f;
int score[N];
char name[N][10];
int number[N];
int main () {
int counter1 = 0, counter2 = 0, counter3 = 0, counter4 = 0, counter5 = 0, counter6 = 0;
int F[N], AboveAvg[N];
for (i = 0; i < N; i++) {
printf ("名字:\t");
scanf ("%s", &name[i]);
printf("成绩:\t");
scanf("%d", &score[i]);
printf("学号:\t");
scanf("%d", &number[i]);
if (score[i] < 0)
break;
else if (score[i] >= 90)
counter1++;
else if (score[i] >= 80)
counter2++;
else if (score[i] >= 70)
counter3++;
else if (score[i] >= 60)
counter4++;
else {
F[counter5] = i; //记录不及格的人的下标 方便后续遍历
counter5++;
}
}
int p, j;
f = ave(a);
for (p = 0; p < N; p++) {
if (score[p] > f) {
AboveAvg[counter6] = p; //同理
counter6++;
}
}
max = score[0];
max_i = 0;
for (j = 0; j < N; j++) {
if (max < score[j]) {
max = score[j];
max_i = j;
}
}
a = (counter1 * 100.0 / N);
b = (counter2 * 100.0 / N);
c = (counter3 * 100.0 / N);
d = (counter4 * 100.0 / N);
e = (counter5 * 100.0 / N);
printf("最高分是:%d分,其学号为:%d\n", max, number[max_i]);
printf("不及格有:%d人,所占百分比为:%.2f%%\n", counter5, e);
printf("不及格的人有:");
for ( i = 0; i < counter5; i++) {
printf("%s\t", name[F[i]]);
}
printf("\n分数>=90占百分比为:%.2f%%\n", a);
printf("90>分数>=80占百分比为:%.2f%%\n", b);
printf("80>分数>=70占百分比为:%.2f%%\n", c);
printf("70>分数>=60占百分比为:%.2f%%\n", d);
printf("在平均分数之上的有:%d人\n", counter6);
printf("高于平均分的人有:");
for ( i = 0; i < counter6; i++) {
printf("%s\t", name[AboveAvg[i]]);
}
printf("\n");
return 0;
}
int ave(int a) {
int total = 0, i, b;
for (i = 0; i < N; i++) {
total += score[i];
}
b = total / N;
return b;
}