c语言编程问题
# include & ltstdio.h & gt
# include & ltstdlib.h & gt
# include & lttime.h & gt
#定义?stuNum?15//学生人数
#定义?scNum?7//模块数量
typedef?struct?Stu//定义学生数据结构
{
int?席德;//学生ID
int?sc[scNum];//对应7个模块分数
int?总和;//总分
}斯图;
作废?insertSTU(STU?* stu);//输入15学生的信息。
作废?insertTest(STU?* stu);//测试,用随机数代替输入,我懒得输入那么多成绩,你要手工输入,调用insertSTU代替这个函数。
作废?printfSTU(斯图?* stu);//按照输入顺序打印15学生7个模块的成绩以及每个模块的前三名成绩。
int?主()
{
斯图?stu[stuNum];//定义15学生
//?int?I,j,sc;
srand(time(NULL));
插入测试(stu);//我想手动输入,改成insertSTU(stu)
printfSTU(stu);
回归?0;
}
作废?printfSTU(斯图?*stu)//按照输入顺序打印15学生7个模块的成绩以及每个模块的前三名信息?然后呢。总分前三名信息
{
int?I,j,k,sc;
斯图?*max[3],*sum[3],newstu//max对应7个模块前3名的学生结构指针?Sum对应总分前3名学生的结构指针。
for(I = 0;我& ltstuNumi++)
{
Printf("模块7中编号为%02d的同学的成绩和总成绩为",stu[i]。sid分别);
for(j = 0;j & ltscNumj++)
{
sc=stu[i]。sc[j];
printf("%02d?",sc);
}
printf("%d\n ",stu[i]。sum);
}
for(j = 0;j & ltscNumj++)
{
for(k = 0;k & ltscNumk++)
{
news tu . sc[k]= 0;
news tu . sum = 0;
}
max[0]= max[1]= max[2]= & amp;newstu
for(I = 0;我& ltstuNumi++)
{
如果(斯图[我]。sc[j]& gt;max[0]-& gt;sc[j])
max[0]= & amp;(stu[I]);
不然呢?如果(斯图[我]。sc[j]& gt;max[1]-& gt;sc[j])
max[1]= & amp;(stu[I]);
不然呢?如果(斯图[我]。sc[j]& gt;max[2]-& gt;sc[j])
max[2]= & amp;(stu[I]);
}
printf(" 02d中排名前三的模块分别是:编号%02d分数:%02d编号:%02d分数:%02d编号:%02d分数?\n ",j+1,max[0]-& gt;sid,max[0]-& gt;sc[j],max[1]-& gt;sid,max[1]-& gt;sc[j],max[2]-& gt;sid,max[2]-& gt;sc[j]);
}
sum[0]= sum[1]= sum[2]= & amp;newstu
for(I = 0;我& ltstuNumi++)
{
如果(斯图[我]。sum & gtsum[0]-& gt;总和)
sum[0]= & amp;(stu[I]);
不然呢?如果(斯图[我]。sum & gtsum[1]-& gt;总和)
sum[1]= & amp;(stu[I]);
不然呢?如果(斯图[我]。sum & gtsum[2]-& gt;总和)
sum[2]= & amp;(stu[I]);
}
Printf("总分前三名分别是:序号:%02d,总分:%02d,总分:%02d,序号:%02d,总分:%02d?\n ",sum[0]-& gt;sid,sum[0]-& gt;sum,sum[1]-& gt;sid,sum[1]-& gt;sum,sum[2]-& gt;sid,sum[2]-& gt;sum);
}
作废?insertSTU(STU?*stu)//输入15学生的信息。
{
int?I,j,sc;
for(I = 0;我& ltstuNumi++)
{
斯图[我]。sid = I+1;
斯图[我]。sum = 0;
Printf("输入编号为%d的学生的7个模块成绩:",I+1);
for(j = 0;j & ltscNumj++)
{
//scanf("%d ",& ampsc);//?我懒得输入那么多成绩,就用随机数代替吧。你得输入它来还原这句话。
sc =(int)(rand()% 100);//用一个随机的2位数替换输入,如果不需要就注释掉。
斯图[我]。sc[j]= sc;
斯图[我]。sum=stu[i]。sum+sc;
}
}
}
作废?insertTest(STU?*stu)//用instead of输入进行测试。
{
int?I,j,sc;
for(I = 0;我& ltstuNumi++)
{
斯图[我]。sid = I+1;
斯图[我]。sum = 0;
for(j = 0;j & ltscNumj++)
{
sc =(int)(rand()% 100);
斯图[我]。sc[j]= sc;
斯图[我]。sum=stu[i]。sum+sc;
}
}
}