C语言程序设计:有30名学生的5门成绩,编写函数统计不及格成绩最多的一门?

C语言程序设计:有30名学生的5门成绩,编写函数统计不及格成绩最多的一门?

1、用结构体表示一名学生的信息,用结构数组记录所有信息。

2、用随机数填充所有数值。

3、通过循环统计出不及格数最多的一门学科。

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#define M 30//最大人数

#define S 5//最大学科数

#define P 60//及格线

typedef struct stu

{

    int id;//学生学号

    int scores[5];//5们成绩

}STU;

void init(STU stus[]);//初始化数值,并打印输出

void stt(STU stus[]);//统计并输出不及格人数最多的科目

int main()

{

    STU stus[M];

    init(stus);

    stt(stus);

    return 0;

}

void init( STU stus[])

{

    int i,j;

    srand(time(NULL));

    for(i=0,printf("学号");i<S;i++,printf(" 学科%d",i));

    printf("\n");

    for(i=0;i<M;i++,stus[i].id=i,printf("\n"))

        for(j=0,printf("%04d",i+1);j<S;printf(" %5d",stus[i].scores[j]),j++)

            stus[i].scores[j]=rand()%100;

}

void stt(STU stus[])

{

    int i,j,cnt,min=0,mid;

    for(i=0;i<S;i++)

    {

        for(j=0,cnt=0;j<M;j++)

            if(stus[j].scores[i]<P)

                cnt++;

        if(min<cnt)min=cnt,mid=i+1;

    }

    printf("不及格人数最多的科目是,科目%d,共%d人不及格\n",mid,min);

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-09-28
主体是成绩,分5个学科,每个学科有30个数值
a[30],b[30],c[30],d[30],e[30],每个去遍历汇总下不及格有多少个;
得到5个数值取最大就好了;
相似回答