关于学生信息管理系统

img


请问最后为什么运行不出来呢?怎么对学号进行排序呢?我认为自己这个没错咋就是运行不出来最后一步?

描述一下具体运行到哪不出来?另外不要图片,贴出代码看看



#include<stdio.h>
#define N 3
 struct Student
   {
      int  num[12];
      char name[10];
      char sex;
      int  age;
      int  c ;
      int  English;
      int  math;
      double aver;
    }stu[N],temp;

int main()
{   int i,j,a,b;
    for(i=0;i<N;i++)
    {
printf("请输入第%d个学生的信息:\n",i+1);
printf("学号(12个字符以内):");
scanf("%d",&stu[i].num);
printf("姓名(10个字符以内):");
scanf(" %s",stu[i].name);
printf("性别(4个字符以内):");
scanf(" %s",&stu[i].sex);
printf("年龄(整数):");
scanf(" %d",&stu[i].age);
printf("《c语言》成绩(整数):");
scanf("%d",&stu[i].c);
printf("英语成绩(整数):");
scanf("%d",&stu[i].English);
printf("高数成绩(整数):");
scanf("%d",&stu[i].math);
stu[i].aver=(stu[i].c+stu[i].English+stu[i].math)/3.0;
printf("\n");
    }


printf("请选择排序字段\n"); 
 printf("---------------------------------------------------------------------------------\n");
 printf("(1)学号 (2)姓名 (3)性别 (4)年龄 (5)c语言 (6)英语 (7)高数 (8)平均分 (0)退出程序\n");
 printf("---------------------------------------------------------------------------------\n");
 scanf("%d",&a);
 printf("请选择排序方向\n"); 
 printf("---------------------------------------------------------------------------------\n");
 printf("(1)升序 (2)降序 (0)退出程序\n");
 printf("---------------------------------------------------------------------------------\n");
 scanf("%d",&b);
 
 if(a==1&&b==1)
 {for(i=0;i<N-1;i++)
    for(j=i+1;j<N;j++)
    {    if(stu[i].num>stu[j].num)
        {temp=stu[i];stu[i]=stu[j];stu[j]=temp;}
        for(i=0;i<N;i++)
        {    printf("%d%s%s%d%d%d%d%f\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].c,stu[i].English,stu[i].math,stu[i].aver);
        }
    }
}

}