#include"stdio.h"
#include"stdlib.h"
#include"string.h"
void main()
{
int xh[20],cj[20][5],i,j,y,x,fs,c,d,flag,dt,a,tui,w;//fs查询方式,d要查询的学号,dt排序时作交换,a服务选项
char name[20][20],name2[20],yes,b[20];//name2要查找人的姓名,yeas提示是否继续查找,w交换姓名,
printf("请输入学生的人数:");
scanf("%d",&x);
for(i=0;i
printf("请输入第%d个学生的信息:\n",i+1);
xh[i]=i+1;
printf("姓名:");
scanf(" %s",name[i]);
for(j=0;j<=2;j++)
{
if(j==0)
{
printf("语文成绩:");
scanf("%d",&cj[i][j]);
}
else if(j==1)
{
printf("数学成绩:");
scanf("%d",&cj[i][j]);
}
else
{
printf("英语成绩:");
scanf("%d",&cj[i][j]);
}
}
}
//总分,平均分
loop2: printf("请选择服务:1排序\n2打印\n3查找\n4退出\n");
scanf("%d",&a);
for(i=0;i
cj[i][3]=0;
for(j=0;j<=2;j++)
{
cj[i][3]+=cj[i][j];
}
cj[i][4]=cj[i][3]/3;
}
switch(a)
{
case 1:
//排序
for(i=0;i
for(j=0;j<=4-i;j++)
{
if(cj[i][3]
dt=xh[i];
xh[i]=xh[i+1];
xh[i+1]=dt;
// strcmp(w,name[i]);
// strcmp(name[i+1],name[i]);
// strcmp(name[i+1],w);
for(j=0;j<=4-i;j++)
{
if(cj[i][3]
cj[i][j]=cj[i+1][j];
cj[i+1][j]=dt;
}
}
}
}
printf("\t\t**********成绩表**********\n\n");
printf("学号\t姓名\t语文\t数学\t英语\t总分\t平均分\n");
for(i=0;i
printf("%03d\t%s\t",xh[i],name[i]);
for(j=0;j<=4;j++)
{
printf("%d\t",cj[i][j]);
} printf("\n");
}break;
//}
system("cls");
//输出
case 2:
{
printf("\t\t**********成绩表**********\n\n");
printf("学号\t姓名\t语文\t数学\t英语\t总分\t平均分\n");
for(i=0;i
printf("%03d\t%s\t",xh[i],name[i]);
for(j=0;j<=4;j++)
printf("%d\t",cj[i][j]);
printf("\n");
}
lop:printf("是否继续服务(y/n)?");
scanf(" %c",&yes);
if(yes=='y'||yes=='Y')
{
goto loop2;
}
else if(yes=='n'||yes=='N')
{
printf("按任意键退出");
}
else
{
printf("你的输入不合法!!");
goto lop;
}
}break;
//查找
case 3:
{
loop:printf("选择查询方式:1学号,2姓名");
scanf("%d",&d);
if(d==1)
{
flag=0;
printf("请输入你要查找的学号:\n");
scanf("%d",&c);
system("cls");
for(i=0;i
if(xh[i]==c)
{
printf("学号\t姓名\t语文\t数学\t英语\t总分\t平均分\n");
printf("%03d\t%s\t",xh[i],name[i]);
for(j=0;j<=4;j++)
printf("%d\t",cj[i][j]);
printf("\n");
flag=1;
}
}
if (flag==0)
printf("查无此人!!\n");
loop1: printf("是否继续查找(y/n)?");
scanf(" %c",&yes);
if(yes=='y'||yes=='Y')
{
goto loop;
}
else if(yes=='n'||yes=='N')
{
loop3:printf("1退出程序\n2返回上一层");
scanf("%d",&tui);
if(tui==1)
{
printf("安全退出程序^^^^^^^");break;
}
else if(tui==2)
{
goto loop2;
}
else
{
goto loop3;
}
}
else
{
printf("你的输入不合法");
goto loop1;
}
}
else if(d==2)
{
flag=0;
printf("请输入你要查找的姓名:\n");
scanf(" %s",name2);
system("cls");
for(i=0;i
if(strcmp(name[i],name2 )==0)
{
printf("学号\t姓名\t语文\t数学\t英语\t总分\t平均分\n");
printf("%03d\t%s\t",xh[i],name[i]);
for(j=0;j<=4;j++)
printf("%d\t",cj[i][j]);
printf("\n");
flag=1;
}
}
if (flag==0)
{
printf("查无此人!!\n");
printf("是否继续查找(y/n)?");
scanf(" %c",&yes);
if(yes=='y'||yes=='Y')
{
goto loop;
}
else if(yes=='n'||yes=='N')
{
printf("1退出程序\n2返回上一层");
scanf("%d",&tui);
if(tui==1)
{
printf("安全退出程序^^^^^^^");break;
}
else if(tui==2)
{
goto loop2;
}
else
{
goto loop3;
}
}
else
{
printf("你的输入不合法");
goto loop1;
}
}
}
else
printf("你的输入不合法\n");
goto loop;
}break;
case 4:
{
printf("安全退出!!");
}break;
}
} 试试先
晕!
第一个题目有没有分量就不用说了
第二个题目可以用C++中类中操作符重载来搞定! 自己看着办吧。。。学编成不要太依赖别人了。。。。加油!