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

C语言程序设计:有30名学生的5门成绩,编写函数统计不及格成绩最多的一门?... C语言程序设计:有30名学生的5门成绩,编写函数统计不及格成绩最多的一门? 展开
 我来答
自我编程
2021-09-29 · 科技优质答主
自我编程
采纳数:1481 获赞数:4270

向TA提问 私信TA
展开全部

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

}

little_Brothor
2021-09-28
知道答主
回答量:12
采纳率:0%
帮助的人:4212
展开全部
主体是成绩,分5个学科,每个学科有30个数值
a[30],b[30],c[30],d[30],e[30],每个去遍历汇总下不及格有多少个;
得到5个数值取最大就好了;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式