C语言编程问题,麻烦用结构体,谢谢
你问题不全,任务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;
}