haiouda 发表于 2015-2-11 10:36:18

看不懂程序,谁能帮忙解释下,谢谢

本帖最后由 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比,请编程序找出三队赛手的名单。



aswyamato1989 发表于 2015-2-11 11:39:22

先不考虑条件,abc三个人每个人的对手可能是xyz三人之中的一个,三个for循环是找出所有的可能,最内层for循环的if判断语句是条件判断,必须满足:1.abc三个人的各自对手不相同;2.a的对手不是x;3.c的对手不是x和z;凡是能同时满足这三个条件,就打印出,即最终的对阵表。

mhhnjuol 发表于 2015-2-11 12:16:02

遍历abc与xyz所有可能匹配情况,并且每次检查是否符合条件

haiouda 发表于 2015-2-12 20:28:03

aswyamato1989 发表于 2015-2-11 11:39
先不考虑条件,abc三个人每个人的对手可能是xyz三人之中的一个,三个for循环是找出所有的可能,最内层for循 ...

多谢 :handshake

神释 发表于 2015-2-12 21:09:34

就是二楼那样

彳山一几攵 发表于 2015-3-9 17:34:05

好难,不懂

haiouda 发表于 2015-3-11 14:09:50

彳山一几攵 发表于 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'\\这是依题意写出为的;

这二部分,配合上面的三重循环,即得出符合要的结果了。(这里需说明的是:甲队已经固定了,所有的计算,是针对乙队来的)

不要叫我小六 发表于 2015-3-11 18:29:24

我是来回复的

d5zhao 发表于 2015-4-16 04:51:20

不懂,帮顶

zd0307 发表于 2015-4-16 04:58:01

挣鱼币

Hugo101 发表于 2015-5-3 17:09:14

支持下~~~
页: [1]
查看完整版本: 看不懂程序,谁能帮忙解释下,谢谢