这是自己写的比较简单,还不太成熟
#include<stdio.h>
#include<string.h>
#include<windows.h>
int k=0;
struct score
{
char xi[34],xue[20];
double s;
int rank;
}ss[19234],p;
void println()
{
printf("\n");
printf(" 1.输入信息 2.查看排名 3.查找信息 4.重置系统\n");
printf("\n");
printf("按ctrl+z退出系统\n");
printf("\n\n\n请输入(1~4)\n");
}
void xingxi()
{
int i,j;
printf("请输入学生人数、姓名、学号、成绩\n");
printf("之间用空格分隔\n");
scanf("%d",&j);//学生人数
getchar();
k+=j;
for(i=0;i<j;i++)
{
scanf("%s%s%lf",ss[i].xi ,ss[i].xue,&ss[i].s);
//学生信息
}
}
void rank()
{
int i,j;
for(i=0;i<k;i++)
for(j=i+1;j<k;j++)
if(ss[i].s<ss[j].s)
{
p=ss[i];
ss[i]=ss[j];
ss[j]=p;
}
for(i=0;i<k;i++)
{
ss[i].rank=i+1;
printf("%s %s %lf %d\n",ss[i].xi,ss[i].xue,ss[i].s,ss[i].rank);
}
}
void look()
{
char sx[23];
int i,j=0;
printf("请输入查找人的姓名");
scanf("%s",sx);
for(int i=0;i<k;i++)
{
if(strcmp(sx,ss[i].xi)==0)
{
j=1;
break;
}
}
if(j)
printf("%s %s %lf %d\n",ss[i].xi,ss[i].xue,ss[i].s,ss[i].rank);
else
printf("查无此人\n");
}
int main()
{
int a;
println();
while(~scanf("%d",&a))
{
switch(a)
{
case 1:
xingxi();
break;
case 2:
rank();
break;
case 3:
look();
break;
case 4:
system("cls");
k=0;
break;
default:
printf("请重新输入\n");
}
if(a==4)
printf("\n请输入(1~4)\n");
else if (a==5)
continue;
else
printf("\n请继续输入(1~4)\n");
}
return 0;
}