怎么同时将平均分的人的名字,平均分的人数一起输出;不及格的同上

怎么同时将平均分的人的名字,平均分的人数一起输出;不及格的同上

 
#include <stdio.h>
#define N 30
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 = 1;
    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
            counter5++;
    }
    int p, j;
    f = ave(a);
    for (p = 0; p < N; p++) {
        if (score[p] > f)
            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("分数>=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);
    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 5
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 = 1;
    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);
       for( i =0;i<counter5;i++){
           printf("%s ",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);
    for( i =0;i<counter6;i++){
           printf("%s ",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;
}
 

你可以遍历成绩数组,如果等于平均分就输出num[i][10];到最后输出平均分的人数,因为你存姓名和成绩的下标是一样的,可以直接按照成绩的下标来找姓名,不及格的也一样