看不懂程序,谁能帮忙解释下,谢谢
本帖最后由 haiouda 于 2015-2-11 10:47 编辑#include<stdio.h>
void main()
{ char a,b,c;
for(a='x';a<='z';a++)
for(b='x';b<='z';b++)
for(c='x';c<='z';c++)
{
if(a!=b&&a!=c&&b!=c&&a!='x'&&c!='x'&&c!='z')
printf("A--%c\nB--%c\nC--%c\n",a,b,c);
}
}
【程序22】
题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
先不考虑条件,abc三个人每个人的对手可能是xyz三人之中的一个,三个for循环是找出所有的可能,最内层for循环的if判断语句是条件判断,必须满足:1.abc三个人的各自对手不相同;2.a的对手不是x;3.c的对手不是x和z;凡是能同时满足这三个条件,就打印出,即最终的对阵表。 遍历abc与xyz所有可能匹配情况,并且每次检查是否符合条件 aswyamato1989 发表于 2015-2-11 11:39
先不考虑条件,abc三个人每个人的对手可能是xyz三人之中的一个,三个for循环是找出所有的可能,最内层for循 ...
多谢 :handshake 就是二楼那样 好难,不懂 彳山一几攵 发表于 2015-3-9 17:34
好难,不懂
if(a!=b&&a!=c&&b!=c&&a!='x'&&c!='x'&&c!='z')其实包括二部分:
第一部分: a!=b&&a!=c&&b!=c \\ 即x、y、z,不能同时出现(即单循环)
第二陪分:a!='x'&&c!='x'&&c!='z'\\这是依题意写出为的;
这二部分,配合上面的三重循环,即得出符合要的结果了。(这里需说明的是:甲队已经固定了,所有的计算,是针对乙队来的)
我是来回复的 不懂,帮顶 挣鱼币 支持下~~~
页:
[1]