读心命理 2020-06-13 14:33 采纳率: 0%
浏览 147

这个结构体查找和排序后为什么不能输出

#include
#include
int a;
#define N 10
int menu(void)
{
int c;
printf("-----------------------------------------\n");
printf("| 主菜单 |\n");
printf("| 1.增加或删除 |\n");
printf("| 2.排序 |\n");
printf("| 3.查找 |\n");
printf("-----------------------------------------\n");
printf("请输入所需功能:");
scanf("%d",&c);
return c;
}
int fmenu(void)
{
int z;
printf("-----------------------------------------\n");
printf("| 排序菜单 |\n");
printf("| 1.学号 |\n");
printf("| 2.出生年月 |\n");
printf("-----------------------------------------\n");
printf("请输入所需功能:");
scanf("%d",&z);
return z;
}
struct student
{
char number[20];//学号
int s;//宿舍门牌号
char name[10];//姓名
char address[100];//地址
int gender;//性别
char pro[20];//专业
char date[20];//出生年月
char grade[10];//年级
int b;//班级
}stu [N];
void main()
{
char num[20];
int t,m=0,f=0,d,ch,x,e,ct,i,y;
printf("\t\t\t\t\t\t\t欢迎登入学生管理系统\n");
printf("请先完成录入信息以便后续操作!\n");
printf("\t请输入需要录入本系统学生人数a=");
scanf("%d",&a);
for(t=0;t {
printf("请输入第%d个学生信息\n",t+1);
printf("\t姓名:");
scanf("%s%*c",&stu[t].name);
printf("\t学号:");
scanf("%s%*c",&stu[t].number);
printf("\t地址:");
scanf("%s%*c",&stu[t].address);
printf("\t专业:");
scanf("%s%*c",&stu[t].pro);
printf("\t宿舍门牌号:");
scanf("%d%*c",&stu[t].s);
printf("\t性别(男1女2):");
scanf("%d%*c",&stu[t].gender);
printf("\t出生年月:");
scanf("%s%*c",&stu[t].date);
printf("\t年级:");
scanf("%s%*c",&stu[t].grade);
printf("\t班级:");
scanf("%d%*c",&stu[t].b);
}
printf("您已完成信息录入!\n");
for(t=0;t
{
if(stu[t].gender==1)
m++;
else
f++;
}
printf("男性%d,女性%d\n",m,f);//a,t均为人数
ch=menu();
switch(ch)
{
case 1: printf("您是否需要增加或删除记录?(增加输入1,删除输入2)\n");
scanf("%d",&y);
if(y==1)
{
printf("几条记录?\n");
scanf("%d",&d);
for(;a {
printf("请输入第%d个学生信息\n",t+1);
printf("\t姓名:");
scanf("%s%*c",&stu[t].name);
printf("\t学号:");
scanf("%s%*c",&stu[t].number);
printf("\t地址:");
scanf("%s%*c",&stu[t].address);
printf("\t专业:");
scanf("%s%*c",&stu[t].pro);
printf("\t宿舍门牌号:");
scanf("%d%*c",&stu[t].s);
printf("\t性别(男1女2):");
scanf("%d%*c",&stu[t].gender);
printf("\t出生年月:");
scanf("%s%*c",&stu[t].date);
printf("\t年级:");
scanf("%s%*c",&stu[t].grade);
printf("\t班级:");
scanf("%d%*c",&stu[t].b);
}
printf("增加成功\n");//a为人数
}
if(y==2)
while(1)
{
printf("请输入需要删除学生学号:\n");
scanf("%s",num);
for(t=0;t
if(strcmp(num,stu[t].number)==0)
{
for(;t
stu[t-1]=stu[t];
a--;
}//a为人数
printf("需要继续删除输入1,否则输入2\n");
scanf("%e",&e);
printf("删除成功!\n");
if(e==2)
break;
}
printf("您是否需要进行排序或者查找?(排序请按1,查找请按2,不需要输入3)\n");
scanf("%d",&x);
if(x==3)
break;
case 2:
if(x==2)
{
printf("请输入学号查找(学号唯一):");
scanf("%s",num);
for(t=0;t
if(strcmp(num,stu[t].number)==0)
printf("该学生是%s,家住%s,宿舍是%s,%s专业%d班,出生于%s,目前%s,性别%d\n",stu[t].name,stu[t].address,stu[t].s,stu[t].pro,stu[t].b,stu[t].date,stu[t].grade,stu[t].gender);
break;
}
printf("请选择排序方式:\n");
ct=fmenu();
switch(ct)
{
case 1:
for(t=0;t
for(i=t+1;i if(strcmp(stu[t].number,stu[i].number)>0)
{
stu[a+3]=stu[t];
stu[t]=stu[i];
stu[i]=stu[a+3];
}
break;
case 2:
for(t=0;t
for(i=t+1;i if(strcmp(stu[t].date,stu[i].date)>0)
{
stu[a+3]=stu[t];
stu[t]=stu[i];
stu[i]=stu[a+3];
}
break;

}
for(t=0;t<a;t++)
printf("该学生是%s,家住%s,宿舍是%s,%s专业%d班,出生于%s,目前%s,性别%d\n",stu[t].name,stu[t].address,stu[t].s,stu[t].pro,stu[t].b,stu[t].date,stu[t].grade,stu[t].gender);
break;
case 3: printf("请输入学号查找(学号唯一):");
scanf("%s",num);
for(t=0;t<a;t++)
if(strcmp(num,stu[t].number)==0)
printf("该学生是%s,家住%s,宿舍是%s,%s专业%d班,出生于%s,目前%s,性别%d\n",stu[t].name,stu[t].address,stu[t].s,stu[t].pro,stu[t].b,stu[t].date,stu[t].grade,stu[t].gender);
break;
}
printf("完成!");
}

  • 写回答

2条回答 默认 最新

  • zqbnqsdsmd 2020-08-28 08:03
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题