随机产生10个学生5门课成绩(成绩范围为【0,100】,并输出平均分最高学生的成绩和平均分最低分学生的成绩)

随机产生10个学生5门课成绩(成绩范围为【0,100】,并输出平均分最高学生的成绩和平均分最低分学生的成绩)

问题描述:

随机产生10个学生5门课程的成绩(成绩范围(0-100)) 并输出平均分最高的学生成绩和平均分最低的学生成绩。

你题目的解答代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
    srand((unsigned)time(NULL));
    int a[10][5];
    int i, j, s, maxIndex, minIndex;
    float avg, max = -999999, min = 999999;
    for (i = 0; i < 10; i++)
    {
        s = 0;
        for (j = 0; j < 5; j++)
        {
            a[i][j] = rand() % 101;
            s += a[i][j];
            printf("%d\t", a[i][j]);
        }
        printf("\n");
        avg = s / 5.0;
        if (avg > max)
        {
            max = avg;
            maxIndex = i;
        }
        if (avg < min)
        {
            min = avg;
            maxIndex = i;
        }
    }
    printf("平均分最高学生的成绩:");
    for (j = 0; j < 5; j++)
        printf("%d ", a[maxIndex][j]);
    printf("平均分%.2f\n", max);
    printf("平均分最低学生的成绩:");
    for (j = 0; j < 5; j++)
        printf("%d ", a[minIndex][j]);
    printf("平均分%.2f\n", min);
    return 0;
}

img

如有帮助,望采纳!谢谢!

#include <stdio.h>  
#include <stdlib.h>  
#include <time.h>  
#define NUM 10  
void main()  
{  
    int stuScore[NUM][5];  
    double averageScore[NUM];  
    int sum;  
    srand((unsigned)time(NULL));  
    for(int i=0;i<NUM;i++)  
    {  
        sum=0;  
        for(int j=0;j<5;j++)  
        {  
            stuScore[i][j]=rand()%100+1;  
            sum += stuScore[i][j];  
        }  
        averageScore[i]=sum/5.0;  
    }  
    //采用选择排序对学生平均成绩进行排名  
    double temp;  
    int maxValue;  
    for(int j=0;j<NUM-1;j++)  
    {  
        maxValue=j;  
        for(int k=j+1;k<NUM;k++)  
        {  
            if(averageScore[k]>averageScore[maxValue])  
            {  
                maxValue=k;  
            }  
        }  
        if(maxValue != j)  
        {  
            temp = averageScore[j];  
            averageScore[j] = averageScore[maxValue];  
            averageScore[maxValue]=temp;  
        }  
    }  
        printf("最高平均分为:%5.2f,最低平均分为:%5.2f\n",averageScore[0], averageScore[9]);     
}