问题描述
- 大神,我这代码运行时为什么出错?
-
#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,%5dn",
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,%5dn",
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=5n");break; case 2:sch[a].ath[b].mgrade=3;printf("mgrade=3n");break; case 3:sch[a].ath[b].mgrade=2;printf("mgrade=2n");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=7n");break; case 2:sch[a].ath[b].wgrade=5;printf("wgrade=5n");break; case 3:sch[a].ath[b].wgrade=3;printf("wgrade=3n");break; case 4:sch[a].ath[b].wgrade=2;printf("wgrade=2n");break; case 5:sch[a].ath[b].wgrade=1;printf("wgrade=1n");break; default:printf("不符合条件;n"); } } } } for(a=0;a<2;a++) { printf("====学校编号:"); printf("%dn",sch[a].num); for(b=0;b<2;b++) { printf("ath[a]:%s-%s-%c-%c-%d-%s-%dnn",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("*******************nn"); 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();
}
解决方案
解决方案二:
你要学会调试程序,根据错误的位置,定位程序里面的错误,
注意看你程序中对应的位置,你少掉了一个“”&“”符号,
这是我修改之后运行的结果
不介意的话,点击一下采纳哈,这样的话可以把C币送给我,呵呵,
解决方案六:
存放分数的变量都被你注释了,
也没有输入分数,哪里来的输出呢?
解决方案七:
我很奇怪,你直接让他把改好的完整代码,私信给你,不就行了么??