1. C语音编程题(一个班级有N个学生,每个学生有学号、姓名,学生学习课程语文、数学、英语)

//没有做防护检测,自己添加一下吧
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

typedefunsignedintuint;

;

structtagStudent
{
uintstuNum;
//uintseq;
wchar_tname[10];
intscoreCh;
intscoreEn;
intscoreMath;
inttotalScore;
intaverScore;
};

intmain(void)
{
intn=0;
inti=0,j=0;
wchar_twch=0;
student*stu=NULL;
printf("请输入有多少个学生: ");
scanf("%d",&n);
getchar();

stu=(student*)malloc(sizeof(student)*n);
if(stu!=NULL)
{
memset(stu,0,sizeof(student)*n);
for(i=0;i<n;i++)
{
printf("请输入第%d名学生的学号: ",i+1);
scanf("%u",&stu[i].stuNum);
getchar();
printf("请输入第%d名学生的姓名: ",i+1);
j=0;
while((wch=getwchar())!=' ')
{
stu[i].name[j]=wch;
j++;
}
printf("请输入第%d名学生的语文分数: ",i+1);
scanf("%d",&stu[i].scoreCh);
getchar();
printf("请输入第%d名学生的数学分数: ",i+1);
scanf("%d",&stu[i].scoreMath);
getchar();
printf("请输入第%d名学生的英语分数: ",i+1);
scanf("%d",&stu[i].scoreEn);
getchar();
stu[i].totalScore=stu[i].scoreCh+stu[i].scoreMath+stu[i].scoreEn;
stu[i].averScore=stu[i].totalScore/3;
}
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(stu[j].totalScore>stu[j+1].totalScore)
{
studenttempStu;
memset(&tempStu,0,sizeof(student));
memcpy(&tempStu,stu+j,sizeof(student));
memcpy(stu+j,stu+j+1,sizeof(student));
memcpy(stu+j+1,&tempStu,sizeof(student));
}
}
}
printf("名次 学号 姓名 语文 数学 英语 总分 平均分 ");
printf("================================================================= ");
for(i=0;i<n;i++)
{
printf("%d %u %S %d %d %d %d %d ",i+1,stu[i].stuNum,stu[i].name,stu[i].scoreCh,stu[i].scoreMath,stu[i].scoreEn,stu[i].totalScore,stu[i].averScore);
}
}

return0;
}