一个小程序 运行不了 请教高手 哪里有错误 谢谢
#include<stdio.h> #define nmax 100
typedef struct
{
int num;/*定义 num (学号)为整形 */
char name[nmax];/*定义name[nmax]为字符串 姓名 */
int escore;//英语成绩
int mscore;//数学成绩
int cscore;//计算机成绩
}student;
int ascore(student s)/*计算总分*/
{
int sum;
sum=s.cscore+s.escore+s.mscore;/*计算三课成绩总和*/
return sum;
}
void sort(student s[],int n)/*按总分排序*/
{
int max=0; /*初始化max,k*/
int k=0;
for(int j=0;j<n;j++) /*将总分最大值赋予max*/
{
max=ascore(s[j]);k=j;
for(int i=j+1;i<n;i++)
if(max<ascore(s[i]))
{
max=ascore(s[i]);k=i;
}
student temp;
if(k>j)
{
temp=s[j];
s[j]=s[k];
s[k]=temp;
}
}
void printstudent(student s)/*输出函数*/
{
printf("%d %s %d %d %d %d",s.num,s.name,s.escore,s.mscore,s.cscore,ascore(s));
printf("\n");
}
void main()
{
student s[3];/*输出3个学生的学号 姓名 和三课成绩*/
for(int i=0;i<3;i++)
{
printf("输入学生的学号:\n");
scanf("%d",&s[i].num);
printf("输入学生的姓名:\n");
scanf("%s",s[i].name);
printf("输入学生的英语成绩:\n");
scanf("%d",&s[i].escore);
printf("输入学生的数学成绩:\n");
scanf("%d",&s[i].mscore);
printf("输入学生的计算机成绩:\n");
scanf("%d",&s[i].cscore);
}
sort(s,3); /*在这3个学生中输出总分最高同学的 学号 姓名和三课成绩*/
for(int i=0;i<3;i++)printstudent(s[i]);
}