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);
}