C语言编程问题,麻烦用结构体,谢谢

定义一个结构类型,可以存储一门课程的名称、主讲教师姓名、选课学生人数和学分数。编程完成输入4门课程的信息,计算并输出最多学分的那门(不一定只有一门)课程的信息。要求用结构... 定义一个结构类型, 可以存储一门课程的名称、主讲教师姓名、选课学生人数和学分数。编程完成输入4门课程的信息,计算并输出最多学分的那门(不一定只有一门)课程的信息。要求用结构数组并参考任务(2)封装函数。 展开
 我来答
自我编程
2020-07-02 · 科技优质答主
自我编程
采纳数:1481 获赞数:4270

向TA提问 私信TA
展开全部

你问题不全,任务2没贴出来。按照编程习惯,分4个函数:

一、主函数,按顺序调用其他函数完成功能。

二、输入函数,对结构体数组输入信息。

三、输出函数,对指定的结构数组输出信息(传递长度1的地址,就表示一个结构体)。

四、查询学分最大的课程,实现遍历结构数组,返回需要的结构数组元素。

ps:所有结构数组传参,都伴随另一个长度参数,表示数组长度。

#include<stdio.h>

typedef struct course

{

    char cName[20];//课程名

    char tName[10];//讲师名

    int pn;//学生人数

    int socre;//学分

}CRE;

void inputInfo(CRE cres[],int len);//信息输入

void outputInfo(CRE cres[],int len);//信息输出

CRE *getMaxBysocre(CRE cres[],int len);//获取学分最大的课程,返回课程结构

int main()

{

    CRE cres[4],*cMax=NULL;//结构数组

    inputInfo(cres,4);

    printf("输入的信息为:\n");

    outputInfo(cres,4);

    cMax=getMaxBysocre(cres,4);

    printf("学分最大的学科为:\n");

    outputInfo(cMax,1);

    return 0;

}

void outputInfo(CRE cres[],int len)

{

    int i;

    for(i=0;i<len;printf("\n"),i++)

    {

        printf("课程名:%s\n",cres[i].cName);

        printf("讲师名:%s\n",cres[i].tName);

        printf("学生数:%d\n",cres[i].pn);

        printf("学分数:%d\n",cres[i].socre);

    }

}

void inputInfo(CRE cres[],int len)

{

    int i;

    for(i=0;i<len;printf("\n"),i++)

    {

        printf("课程名:"),scanf("%s",cres[i].cName);

        printf("讲师名:"),scanf("%s",cres[i].tName);

        printf("学生数:"),scanf("%d",&cres[i].pn);

        printf("学分数:"),scanf("%d",&cres[i].socre);

    }

}

CRE *getMaxBysocre(CRE cres[],int len)

{

    int i,max;

    CRE *crep=NULL;

    for(i=0,max=cres[0].socre;i<len;i++)

        if(cres[i].socre>max)

            crep=&cres[i],max=cres[i].socre;

    return crep;

}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式