性别后面还有输入,你这个应该没有设置循环的严格条件,请把源码粘上来谢谢
#include<stdio.h>
#include <stdlib.h>
#include<string.h>
//定义一个选手信息的结构体
struct playerinformation{
long number;
char name[10];
int age;
char gender[10];
char project[20];
float achievement;
};
struct playerinformation s[100];
int atotal=0;//用于统计数量
//定义一个比赛项目信息的结构体
struct event{
char itname[20];
char time[20];
char site[10];
char player[30];
};
struct event t[30];
int btotal=0;//用于统计数量
//模块函数声明
void addstudent();
void findstudent();
void additem();
void finditem();
void delect();
void modify();
void exit1();
void single();
//main主函数
void main()
{
int m;
while(1)
{ printf("******************************************************************\n");
printf("* ★ C语言课程设计*运动会信息管理系统★ *\n");
printf("* 需要添加学生信息请输入1 *\n");
printf("* 查询全部学生信息请输入2 *\n");
printf("* 添加比赛项目信息请输入3 *\n");
printf("* 查询比赛项目信息请输入4 *\n");
printf("* 删除参赛学生信息请输入5 *\n");
printf("* 修改参赛学生信息请输入6 *\n");
printf("* 如果退出退出程序请输入7 *\n");
printf("* 查询单个学生信息请输入8 *\n");
printf("******************************************************************\n");
scanf("%d",&m);
switch (m)
{
case 1: addstudent();
break;
case 2: findstudent();
break;
case 3: additem();
break;
case 4: finditem();
break;
case 5: delect();
break;
case 6: modify();
break;
case 7: exit1();
break;
case 8: single();
break;
}
}//while
}
//录入选手信息
void addstudent()
{
long number;
char name[10];
int age;
float achievement ;
char gender[10];
char project[20] ;
printf("请输入编号:\n");
scanf("%d",&number);
printf("请输入姓名:\n");
scanf("%s",name);
printf("请输入成绩:\n");
scanf("%f",&achievement);
printf("请输入年龄:\n");
scanf("%d",&age);
printf("请输入性别:\n");
scanf("%s",gender);
printf("请输入比赛项目:\n");
scanf("%s",project);
strcpy(s[atotal].name,name);
strcpy(s[atotal].project,project);
s[atotal].age=age;
strcpy(s[atotal].gender,gender);
s[atotal].achievement=achievement;
s[atotal].number=number;
atotal++;
printf("录入完成\n");
}
//录入比赛项目等信息
void additem()
{
char itname[20];
char time[20];
char site[10];
char player[30];
printf("请输入项目名称:\n");
scanf("%s",itname);
printf("请输入时间:\n");
scanf(" %s",time);
printf("请输入地点:\n");
scanf("%s",site);
printf("请输入选手:\n");
scanf("%s",player);
strcpy(t[btotal].itname,itname);
strcpy(t[btotal].time,time);
strcpy(t[btotal].site,site);
strcpy(t[btotal].player,player);
btotal++;
printf("录入完成\n");
}
//单人查询
void single(){
long y,i;
printf("请输入选手编号:");
scanf("%ld",&y);
for(i=0;i<=atotal;i++){
if(s[i].number==y)
printf("number:%ld,name:%s,achievement:%f,age:%d,gender:%s,project:%s",s[i].number,s[i].name,s[i].achievement,s[i].age,s[i].gender,s[i].project);
}
}
//查询全部选手信息
void findstudent(){
int i;
for(i=0;i<atotal;i++)
{
printf("编号:%ld\n",s[i].number);
printf("姓名:%s\n",s[i].name);
printf("年龄:%d\n",s[i].age);
printf("成绩:%f\n",s[i].achievement);
printf("性别:%s\n",s[i].gender);
printf("比赛项目:%s\n",s[i].project);
}
}
//查询所有比赛项目的信息
void finditem(){
int i;
for(i=0;i<btotal;i++)
{
printf("项目名称:%s\n",t[i].itname);
printf("时间:%s\n",t[i].time);
printf("地点:%s\n",t[i].site);
printf("参赛选手:%s\n",t[i].player);
}
}
//删除比赛选手信息
void delect()
{
long y;
int i;
printf("输入学生的编号\n");
scanf("%ld",&y);
for(i=0;i<atotal;i++)
{
if(s[i].number==y)
{
s[i].number=s[i+1].number;
s[i].age=s[i+1].age;
s[i].achievement=s[i+1].achievement;
strcpy(s[i].project,s[i+1].project);
strcpy(s[i].name,s[i+1].name);
strcpy(s[i].gender,s[i+1].gender);
atotal=atotal-1;
printf("删除完成\n");
break;
}
else
printf("删除未完成\n");
printf("完成重新选择\n");
}
}
//完善修改选手信息
void modify(){
int u;
long y,number;
char name[10];
int age;
char gender[10];
char project[20];
float achievement;
printf("请输入选手编号:");
scanf("%ld",&y);
for(u=0;u<atotal;u++)
{
if(s[u].number==y)
{printf("请输入编号:");
scanf("%ld",&number);
s[u].number=number;
printf("请输入姓名:");
scanf("%s",name);
strcpy(s[u].name,name);
printf("请输入年龄:");
scanf("%d",&age);
s[u].age=age;
printf("请输入性别:");
scanf("%s",gender);
strcpy(s[u].gender,gender);
printf("请输入成绩:\n");
scanf("%f",&achievement);
s[u].achievement=achievement;
printf("请输入比赛项目:\n");
scanf("%s",project);
strcpy(s[u].project,project);
printf("修改成功!");
}
}
}
void exit1()
{
printf("操作完毕,请再次选择");
}