有N个学校,M个男子项目和W个女子项目,记录它们的比赛得分
其中男子项目编号为1~M,女子项目为M+1~M+W;
之后输出结果..................................................................有很多错误,请大家帮忙找找
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define M 5;
#define W 5;
#define N 5;
void input ( struct S_chool *p, int xm );
void putschool ( struct S_chool *p ); /*输出一学校各个项目的得分*/
void puttotal ( struct S_chool *p ); /*输出各个学校的总成绩*/
struct S_chool
{
struct X_iangmu
{
int mingci, scores;
char name[20];}xiangmu[M+W+1];
int malescores, femalescores, total;}school[N+1];
void main()
{
int i, xm;
for( ; ; )
{
printf ("请选择你所想要的功能:\n 0:退出;1:输入数据;2:输出数据;\n");
scanf ("%d",&i);
if(0==i) break;
switch( i )
{
case 1:{
printf ("请输入该项目编号\n");
scanf ("%d",&xm);
input (school, xm);
break;
}
case 2:{
printf ("请选择你所哦想要的功能:\n1:输出一学校成绩;2:输出团体总分报表;\n");
scanf ("%d",&i);
if( 1==i )
{
putschool ( school );
}
else if( 2==i )
{
puttotal ( school );
}
else
{
printf("错误的输入\n");
break;
}
}
default:{
printf("错误的选择输入.\n");
break;
}
}
}
}
void input( struct S_chool *p, int xm )
{
int xx;
printf("请输入学校编号:\n");
scanf ("%d",&xx);
printf("请输入名次:\n");
scanf ("%d",&p[xx].xiangmu[xm].mingci);
printf("请输入该选手姓名:\n");
scanf ("%s",p[xx].xiangmu[xm].name);
printf("请输入该选手得分:\n");
scanf ("%d",&p[xx].xiangmu[xm].scores);
}
void putschool( struct S_chool *p )
{
int xx, xm;
printf("请输入所查询学校的编号:\n");
scanf("%d",&xx);
printf("该学校的成绩如下:\n\n");
for( xm=1; xm <= W+M; xm++ )
{
printf("%d %d %s %d\n\n",xm, p[xx].xiangmu[xm].mingci, p[xx].xiangmu[xm].name, p[xx].xiangmu[xm].scores);
}
}
void puttotal( struct S_chool *p )
{
int xx, xm;
printf("以下是所有学校的男团,女团和总体成绩:\n\n");
for( xx=1; xx <= N; xx++)
{
for( xm=1; xm <= M; xm++ )
p[xx].malescores+=p[xx].xiangmu[xm].scores;
for( j=M+1; j <= M+W; j++ )
p[xx].femalescores+=p[xx].miangmu[xm].scores;
p[xx].total=p[xx].malescores+p[xx].femalescores;
printf("%d %d %d",p[xx].malescores, p[xx].femalescores, p[xx].total);
}
}
----------------解决方案--------------------------------------------------------
我只是改了你语法错误,你编程的思路没具体看...
1 #define N 5; 这里的分号可以去掉.
2 for( j=M+1; j <= M+W; j++ ) 这里的j在函数理没定义.
3 p[xx].femalescores+=p[xx].miangmu[xm].scores; 黑体字部分要改成
xiangmu
----------------解决方案--------------------------------------------------------
谢了
楼上的,居然又是这些语法错误
我查了N遍也没查出来,太粗心了
----------------解决方案--------------------------------------------------------
以下是我的愚见,不当之处请见谅!
(1)
#define M 5
#define W 5
#define N 5 不能有分号!
(2) 函数void puttotal( struct S_chool *p )中没有定义变量j;
(3)
运行结果如下:
请选择你所想要的功能:
0:退出;1:输入数据;2:输出数据;
1
请输入该项目编号
1
请输入学校编号:
1
请输入名次:
1
请输入该选手姓名:
jin
请输入该选手得分:
89
请选择你所想要的功能:
0:退出;1:输入数据;2:输出数据;
2
请选择你所哦想要的功能:
1:输出一学校成绩;2:输出团体总分报表;
2
以下是所有学校的男团,女团和总体成绩:
89 0 890 0 00 0 00 0 00 0
0错误的选择输入.
请选择你所想要的功能:
0:退出;1:输入数据;2:输出数据;
2
请选择你所哦想要的功能:
1:输出一学校成绩;2:输出团体总分报表;
1
请输入所查询学校的编号:
1
该学校的成绩如下:
1 1 jin 89
2 0 0
3 0 0
4 0 0
5 0 0
6 0 0
7 0 0
8 0 0
9 0 0
10 0 0
错误的选择输入.
请选择你所想要的功能:
0:退出;1:输入数据;2:输出数据;
0
Press any key to continue
(4)
好象结果不尽人意,还有一些逻辑问题吧?你再自己看看咯,OK?
----------------解决方案--------------------------------------------------------