本次“大学生C语言程序设计大赛”是由全国高等院校计算机基础教育研究会(简称:AFCEC)理工专业委员会、独立学院与民办高校专业委员会支持,黑龙江省软件学会、黑龙江省软件与信息服务业协会、云南省高等学校计算机教学研究会联合主办,昆明理工大学、黑龙江外国语学院承办的,考察学生C语言程序漏旁设计能力的专业比赛。比赛以培养广大学生的改搜森计算思维能力和实践动手能力,提高学生的学习积极性,增强创造力,营造浓厚的校园学术氛围,促进形成良好校风核亩,实现跨地区、跨学校、跨专业人才培养,达到“以赛促教、以赛促学、共建共享”的目的。此次比赛共有170所高校参与,经过初赛和决赛激励的角逐,共有98所高校的543名同学获奖。
题主你好,给你个思路吧:1、我们假设每个人有姓名和分数的属性。如果简单的只是名字,那就省事儿了反而,这里按照复杂的,定义链表*PlayerList,结构体中应该包括名字,分数和next指针
2、定义两个链表,一个来存储比赛者(也可以确定数量的数组也是ok的),一个来存淘汰的人
PlayerList playList=(PlayerList *)malloc(sizeof(Player))
PlayerList revivalList=(PlayerList *)malloc(sizeof(Player))
3、每有一个人,往playList链表中加入一人,复活列表一开始是空的。
4、运行题主的比赛逻辑,晌此为每个人做打分
5、对人链表中遍简谨戚历每个元素,如果分数小于80,从原链表删除,并将删除元素加入到revivalList中
6、对revivalList的每个元素执行再次执拦陵行比赛的逻辑,因为也可能奇数,也要考虑是循环赛还是有轮空的淘汰之类的。
找到了!#include<stdio.h>
int main()
{
char a,b,c,d //对应4个人a b c d
for(a='w'a<='z'a++) //对手可能是wxyz中的任意一人明棚,所以4个数都要检查
for(b='w'b<='z'b++)//同上
滑槐陵 for(c='w'c<='z'c++)//同上
for( d='w'd<='z'd++ )
信戚 if ( a!=b && b!=c && c!=d && d!=a && b!=d && a!=c ) //两个人不能有相同的对手
if(a!='w'&&b!='w'&&b!='x' && c!='z' ) //A不用W比赛,B不与W,X比赛,C不与Z比赛
printf("A--%c B--%c C--%c D--%c\n",a,b,c,d) //满足条件,输出对手
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)