大神,我这代码运行时为什么出错?

#include
#include
#include
struct sport
{
char sex,athname[10];
char itemtype,itemname[10];
int itemrank,itemnum,mgrade,wgrade;
}ath[2];
struct school
{
int num;
char name[10];
struct sport ath[2];
//int score;
}sch[2];
void xuexiaochazhao()
{
int a,b,schoolnum;

printf("请输入你要查询的学校编号:");
scanf("%d",&schoolnum);
for(a=0;a<2;a++)
{
for(b=0;b<2;b++)
if(sch[a].num==schoolnum)
{
printf("学校编号,名称,运动员(姓名,性别,项目类型,项目编号,项目名称,项目得分)");
printf("\n%5d,%5s,%10s,%5c,%5c,%7d,%13s,%5d\n",
sch[a].num,sch[a].name,sch[a].ath[b].athname,sch[a].ath[b].sex,
sch[a].ath[b].itemtype,sch[a].ath[b].itemnum,sch[a].ath[b].itemname,
sch[a].ath[b].itemrank);

}

}
}
void xiangmuchazhao()
{
int a,b,itnum;

printf("请输入你要查询的项目编号:");
scanf("%d",&itnum);
for(a=0;a<2;a++)
{
for(b=0;b<2;b++)
{
if(ath[b].itemnum==itnum)
{
printf("学校编号,名称,运动员(姓名,性别,项目类型,项目编号,项目名称,项目得分)");
printf("\n%5d,%5s,%10s,%5c,%5c,%7d,%13s,%5d\n",
sch[a].num,sch[a].name,sch[a].ath[b].athname,sch[a].ath[b].sex,
sch[a].ath[b].itemtype,sch[a].ath[b].itemnum,sch[a].ath[b].itemname,
sch[a].ath[b].itemrank);
}
}

}

}
void menu()
{
void inputandrecord(),exited();
int n,i;
printf(" 运动会比赛计分系统 \n");
printf(" 1,本次运动会共有N个学校,M个男生项目,W个女生项目 \n");
printf("2,各个项目项目名次对应得分有两种情况:a,前五名依次得分:7,5,3,2,1;b,前三名依次得分:5,3,2,\n");
printf(" 3,赛后记录每个项目对应得分情况 \n");
printf(" 4,查找每个学校的比赛情况 \n");
printf(" 5,退出 \n");
printf(" -------------------");
printf(" -------------------\n");
for(i=0;i<2;i++)
{
scanf("%d",&n);
switch(n)
{
case 1: inputandrecord();break;
case 5: exited();break;
}
}
}
void inputandrecord()
{
int a,b,m,chazhao;
for(a=0;a<2;a++)
{
printf("\n请输入学校信息\n");
printf("编号:");scanf("%d",&sch[a].num);
printf("名字:");scanf("%s",sch[a].name);
getchar();
for(b=0;b<2;b++)
{
printf("\n请输入项目信息\n");
printf("类型:");scanf("%c",&sch[a].ath[b].itemtype);
printf("编号:");scanf("%d",&sch[a].ath[b].itemnum);
printf("名字:");scanf("%s",sch[a].ath[b].itemname);
getchar();
printf("\n请输入运动员信息\n");
printf("名字:");scanf("%s",sch[a].ath[b].athname);
getchar();
printf("性别:");scanf("%c",&sch[a].ath[b].sex);
printf("名次:");scanf("%d",sch[a].ath[b].itemrank);

        if(sch[a].ath[b].itemtype=='W')
        {
            switch(sch[a].ath[b].itemrank)
            {
            case 0:printf("没有此名次;\n");break;
            case 1:sch[a].ath[b].mgrade=5;printf("mgrade=5\n");break; 
            case 2:sch[a].ath[b].mgrade=3;printf("mgrade=3\n");break;
            case 3:sch[a].ath[b].mgrade=2;printf("mgrade=2\n");break;
            default:printf("不符合条件;\n");
            }
        }
        if(sch[a].ath[b].itemtype=='M')
        {
            switch(sch[a].ath[b].itemrank)
            {
            case 0:printf("没有此名次;\n");break;
            case 1:sch[a].ath[b].wgrade=7;printf("wgrade=7\n");break; 
            case 2:sch[a].ath[b].wgrade=5;printf("wgrade=5\n");break;
            case 3:sch[a].ath[b].wgrade=3;printf("wgrade=3\n");break;
            case 4:sch[a].ath[b].wgrade=2;printf("wgrade=2\n");break;
            case 5:sch[a].ath[b].wgrade=1;printf("wgrade=1\n");break;
            default:printf("不符合条件;\n");
            }
        }
    }
}
for(a=0;a<2;a++)
{
    printf("====学校编号:");
    printf("%d\n",sch[a].num);
    for(b=0;b<2;b++)
    {
        printf("ath[a]:%s-%s-%c-%c-%d-%s-%d\n\n",sch[a].name,sch[a].ath[b].athname,
        sch[a].ath[b].sex,sch[a].ath[b].itemtype,sch[a].ath[b].itemnum,
        sch[a].ath[b].itemname,sch[a].ath[b].itemrank);
    }
}
printf("*******************\n\n");
for(m=0;m<4;m++)
{
   printf("按学校查找请输入1,按项目查找请输入2:  ");
   scanf("   %d",&chazhao);
   if(chazhao==1)
       xuexiaochazhao();
   if(chazhao==2)
       xiangmuchazhao();          
}

}
void exited()
{
printf(" -------------------\n");
printf(" -------------------\n");

printf("感谢老师验收\n");
printf(" -------------------\n");
printf(" -------------------");
}
void main()
{
system("color f5");
menu();
}
图片说明

7个回答

图片说明
你压根儿都没有输入,怎么输出呢?

YXTS122
YXTS122 谢谢了!
4 年多之前 回复
rl529014
好儿郎-志在四方 302558294,你加这个群来问吧,感觉这里说不清楚,我是群管理
4 年多之前 回复
YXTS122
YXTS122 就是你帮我运行的结果
4 年多之前 回复
YXTS122
YXTS122 你没看到在屏幕中前面不是有句mgrade=7吗?可后面为什么没有了呢?我说的是这个
4 年多之前 回复

图片说明

注意看你程序中对应的位置,你少掉了一个“”&“”符号,
这是我修改之后运行的结果
图片说明
不介意的话,点击一下采纳哈,这样的话可以把C币送给我,呵呵,

YXTS122
YXTS122 你要让我运行完整个程序,我才能采纳你
4 年多之前 回复
YXTS122
YXTS122 那个类型还没输,就让我输编号,你这个怎么解决?
4 年多之前 回复

图片说明
需要输入吗?
你自己写的程序,

rl529014
好儿郎-志在四方 回复YXTS122: 看了
4 年多之前 回复
YXTS122
YXTS122 有没有看我发的图,看了没
4 年多之前 回复

这里没把运动员Sue的分数输出来,怎么解释图片

存放分数的变量都被你注释了,图片说明
也没有输入分数,哪里来的输出呢?

YXTS122
YXTS122 你这运行结果不是输出了个mgrade=7吗?就代表一个运动员的分数,然后我再来另一个运动员,怎么就不输出分数了?
4 年多之前 回复

我很奇怪,你直接让他把改好的完整代码,私信给你,不就行了么??

你要学会调试程序,根据错误的位置,定位程序里面的错误,

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问