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

2025-05-22 22:17:58
推荐回答(1个)
回答1:

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

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

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

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

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

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

#include

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

    {

        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

    {

        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

        if(cres[i].socre>max)

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

    return crep;

}