可以运行,但界面的第四个选项——排序,不能进行,帮忙看下!!!谢谢
#include <stdio.h>#include <stdlib.h>
#include <string.h>
#define M 3
void input(long sno[],char sname[][20],int sage[],float cs[],int N)
{int i;
printf("请输入%d个学生的信息.\n",N);
for(i=0;i<N;i++)
{printf("\n输入第%d个学生的\n",i+1);
printf("学号:");
scanf("%ld",&sno[i]);
getchar();
printf("姓名:");
gets(sname[i]);
printf("年龄:");
scanf("%d",&sage[i]);
getchar();
printf("成绩");
scanf("%f",&cs[i]);
getchar();
}
}
void output(long sno[],char sname[][20],int sage[],float cs[],int N)
{int i;
printf("\n%d个学生的基本信息为\n",N);
for(i=0;i<N;i++)
{ printf("%-10d",sno[i]);
printf("%-16s",sname[i]);
printf("%-4d",sage[i]);
printf("%6.0f",cs[i]);
printf("\n");
}
}
void anxuehao(long sno[],char sname[][20],int sage[],float cs[],int N)
{int i;
long snol;
printf("请输入您要查找的学号:\n");
scanf("%ld",&snol);
for(i=0;i<N;i++)
{if(sno[i]==snol)
break;}
if(i<N)
{printf("学号为%ld的学生的基本信息为:\n");
printf("%-10d",sno[i]);
printf("%-16s",sname[i]);
printf("%-4d",sage[i]);
printf("%-6.0f",cs[i]);
printf("\n");
}
else
printf("您输入的学号不存在!\n");
}
void anxingming(long sno[],char sname[][20],int sage[],float cs[],int N)
{int i;
char sname1[20];
printf("请输入要查找学生的姓名:\n");
gets(sname1);
for(i=0;i<N;i++)
{ if(sname1==sname[i])
break;
}
if(i<N)
{ printf("姓名为%s的学生的基本信息:\n");
printf("%-10d",sno[i]);
printf("%-16s",sname[i]);
printf("%-4d",sage[i]);
printf("%-6.0f",cs[i]);
printf("\n");}
else
printf("您输入的姓名不存在!\n");
}
void paixu(long sno[],char sname[][20],int sage[],float cs[],int N)
{int i,j;int tsage;float tcs;char tsname[20];long tsno;
for(i=0;i<N-1;i++)
{for(j=i+1;j<N;j++)
{if(cs[i]<cs[j])
tsno=sno[i];
sno[i]=sno[j];
sno[j]=tsno;
tcs=cs[i];
cs[i]=cs[j];
cs[j]=tcs;
strcpy(tsname,sname[i]);
strcpy(sname[i],sname[j]);
strcpy(sname[j],tsname);
tsage=sage[i];
sage[i]=sage[j];
sage[j]=tsage;
}
}
printf("成绩排序表:\n");
for(i=0;i<N;i++)
printf("%-10d",sno[i]);
printf("%-16s",sname[i]);
printf("%-6.0f",cs[i]);
}
void total(long sno[],char sname[][20],int sage[],float cs[],int N)
{int i,j=0;
printf("成绩为优秀的学生:\n");
for(i=0;i<N;i++)
if(cs[i]>=85)
printf("%s ",sname[i]);
printf("\n成绩为良好的学生:\n");
for(i=0;i<N;i++)
if(cs[i]>=70&&cs[i]<85)
printf("%s ",sname[i]);
printf("\n成绩为合格的学生:\n");
for(i=0;i<N;i++)
if(cs[i]>=60&&cs[i]<70)
printf("%s ",sname[i]);
printf("\n成绩为不及格的学生:\n");
for(i=0;i<N;i++)
if(cs[i]>=0&&cs[i]<60)
printf("%s ",sname[i]);
}
void jiemian()
{printf("\t\t*************************************\n");
printf("\t\t* 欢迎使用学籍管理系统 *\n");
printf("\t\t1.输入学生的基本信息 2.输出学生的信息 *\n");
printf("\t\t3.查找学生的基本的信息 4.排序 *\n");
printf("\t\t5.统计 0.退出 *\n");
printf("\t\t***********************************\n");
printf("\t\t 请输入0~5: ");
}
void chazhao()
{ printf("\t\t******************************************************\n");
printf("\t\t* 欢迎使用查找系统 *\n");
printf("\t\t*1.按学号查找 *\n");
printf("\t\t*2.按姓名查找 *\n");
printf("\t\t*3.返回上一级 *\n");
printf("\t\t****************************************************\n");
printf("\t\t请输入0~2: ");
}
void chazhaoC(long sno[],char sname[][20],int sage[],float cs[],int N)
{int m;
while(1)
{scanf("%d",&m);
switch(m)
{ case 1:
anxuehao(sno,sname,sage,cs,N);
jiemian();
break;
case 2:
anxingming(sno,sname,sage,cs,N);
jiemian();
break;
case 3:
break;
}
if(m==0)
break;
}
jiemian();
}
void choice(long sno[],char sname[][20],int sage[],float cs[],int N)
{int m;
while (1)
{ scanf("%d",&m);
switch(m)
{ case 1:
input(sno,sname,sage,cs,N);
system("cls");
jiemian();break;
case 2:
output(sno,sname,sage,cs,N);
printf("\n按任意键回到界面:");
getch();system("cls");
jiemian();break;
case 3:
chazhao();
chazhaoC(sno,sname,sage,cs,N);
break;
case 4:
paixu(sno,sname,sage,cs,N);
break;
case 5:
total(sno,sname,sage,cs,N);
jiemian();
break;
case 0:
exit(1);
}
}
}
int main(int argc, char *argv[])
{
long sno[M];
char sname[M][20];
int sage[M];
float cs[M];
int i,j;
jiemian();
choice(sno,sname,sage,cs,M);
system("PAUSE");
return 0;
}