急!!!看过来:要求用C语言编程实现一个足球比赛问题! 20

某小组8个队足球比赛完毕,所有比赛结果均有记录,设在两队之间只赛了1场,且比赛没有平局,胜队得3分,负队得0分,编程输出该小组名次顺序。规则是首先看积分,积分相同看净胜球... 某小组8个队足球比赛完毕,所有比赛结果均有记录,设在两队之间只赛了1场,且比赛没有平局,胜队得3分,负队得0分,编程输出该小组名次顺序。规则是首先看积分,积分相同看净胜球数,以后依次为进球数、两队之间的比赛结果。为了简化问题,设通过以上比赛肯定能得出排名顺序。 展开
 我来答
快乐小佩琪
推荐于2018-04-13
知道答主
回答量:33
采纳率:100%
帮助的人:12.1万
展开全部
算法可以这样来想:
1.申请一个数组Team[8];
2.A队有7场比赛(额..是循环赛吗?),输入每场的比赛结果(可以假设胜为1,负为-1).
3.读入数据,用一个选择或是if语句来判断,是1则Team[0]+=3,是0则不做操作.
4.依3之例,依次读入余下6场比赛的结果并处理.
5.依(2,3,4)之例,处理余下7只队伍的比赛结果.
6.为数组Team排序,输出结果.
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ryw12403
2008-11-20 · TA获得超过1899个赞
知道大有可为答主
回答量:2501
采纳率:0%
帮助的人:2106万
展开全部
设一结构,
我只写出了以积分求的次序。

#include <stdio.h>
#define N 5
struct team{
int fen;
int jin_shen_qiu;
int jin_qiu;
char shen_fu;/*win =w,lose =l*/
}t[N];
/*初始化球队成绩*/
void init(struct team t[N]){
int i;
for(i=0;i<N;i++){
printf("\nTeam %d ji fen: ",i+1);
scanf("%d",&t[i].fen);
/*printf("\nTeam %d jin_shen_qiu: ",i+1);
scanf("%d",&t[i].jin_shen_qiu);
printf("\nTeam %d jin qiu: ",i+1);
scanf("%d",&t[i].jin_qiu);
printf("\nTeam %d shen fu: ",i+1);
scanf("%c",&t[i].shen_fu); */
}
}

int sort(struct team t[N],int flag){
int i,j=0,max=0;

switch(flag){

case 1:
for(i=0;i<N;i++){
if(max<t[i].fen){
max=t[i].fen;
j=i;
}
}

return j;

case 2:

for(i=0;i<N;i++){
if(max<t[i].jin_shen_qiu){
max=t[i].jin_shen_qiu;
j=i;
}
}
return j;
case 3:
for(i=0;i<N;i++){
if(max<t[i].jin_qiu){
max=t[i].jin_qiu;
j=i;
}
}
return j;
case 4:
for(i=0;i<N;i++){
if(t[i].shen_fu=='w')
return i;
}
return 0;
}
}

main(){
int i,j,k=0;
init(t);

for(i=0;i<N;i++){
j=sort(t,1);
j++;

if(j){
printf("\nteam %d is %d.",j,i+1);
t[j-1].fen=0;

}

}
getch();
getchar();
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式