学生宿舍管理系统排序功能用主函数调用不了,运行出现问题,请指点一下
代码如下:
#include
#include
#include
#include
#define N 9
struct student
{
char name[N];
int num1[N];
int cla[N];
int dorm[N];
char title[N];
int num2[N];
}stu[100];
//排序
void sort(struct student stu[],int sum)//利用冒泡排序根据学号升序排列
{
int i,j,a;
struct student t;
printf("请再次输入数字1或2\n");
printf("输入1排序,2退出\n");
scanf("%d",&a);
switch(a)
{
case 1:printf("按学生学号排序\n");
for(i=0;i-1;i++)
for(j=i+1;jif(stu[i].num1>stu[j].num1)
{
t=stu[i];
stu[i]=stu[j];
stu[j]=t;
}
}
for(i=0;iprintf("%5d,%5s,%5d,%5d,%5d\n",stu[i].num1,stu[i].name,stu[i].cla,stu[i].dorm,stu[i].num2);}
case 2:printf("退出");break;
}
}
int main()
{
int sum=100;
void sort();
return 0;
}
修改如下,供参考:
#include <stdio.h>
#include <string.h>
//#include
//#include
#define N 9
struct student
{
char name[N];
int num1; //[N];
int cla; //[N];
int dorm; //[N];
char title[N];
int num2; //[N];
}stu[100];
//排序
void sort(struct student stu[],int sum)//利用冒泡排序根据学号升序排列
{
int i,j,a;
struct student t;
printf("按学生学号排序\n");
for(i=0;i<sum-1;i++)
{
for(j=0;j<sum-1-i;j++)
{
if(stu[j].num1>stu[j+1].num1)
{
t = stu[j];
stu[j]=stu[j+1];
stu[j+1]=t;
}
}
}
for(i=0;i<sum;i++)
printf("%5d,%5s,%5d,%5d,%5d\n",stu[i].num1,
stu[i].name,stu[i].cla,stu[i].dorm,stu[i].num2);
}
int main()
{
int sum=10;
sort(stu,sum); //void sort();
return 0;
}