两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请

阿尔泰瑞斯 学生  2017-11-07 07:33:26
#include <stdio.h>
#include <stdlib.h>

int main()
{
char i,j,k;
for(i='x';i<='z';i++)
{
for(j='x';j<='z';j++)
{
if(i!=j)
{
for(k='x';k<='z';k++)
{
if(i!=k&&j!=k)
{
if(i!='x'&&k!='x'&&k!='z')
{
printf("顺序为:a--%c\tb--%c\tc--%c\n",i,j,k);
}
}
}
}
}
}
}
谁能给我讲讲这个答案啊,为什么for循环里面可以用非数字啊
...全文
384 6 点赞 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
阿尔泰瑞斯 2017-11-15
我还是不懂这个答案是什么意思,能解释下为啥要用三个循环吗
  • 打赏
  • 举报
回复
jena_wy 2017-11-15
循环其实用的是字符所对应的ASCII码值。
  • 打赏
  • 举报
回复
CT8100 2017-11-15
引用 4 楼 qq_40790112 的回复:
我还是不懂这个答案是什么意思,能解释下为啥要用三个循环吗
就好比 (a,b,c)(x,y,z)找符合上述要求的比赛规格。 肯定要依次判断呀: a和x比,和y比,和z比 同样b也可以与xyz比 c也可以与xyz比 理论上相当于次数3*3*3=27次。(三次循环的理由) 但是 同一个人只能和一个人比,从而程序中就加了 这样 if(i!=j)的判断,来避免一人多比。 道理就是这样,但是这个算法虽然能实现,但是效率低。
  • 打赏
  • 举报
回复
自信男孩 2017-11-08
字符类型char or unsigned char是int类型的子集,当然可以使用。 不但字符可以,double/float也是可以的。
  • 打赏
  • 举报
回复
qq_36559718 2017-11-08
计算机中所用的都是ASCII码,而'X'的ASCII码是58H,而'Z'的ASCII码是5AH,是可以放在for循环的呀
  • 打赏
  • 举报
回复
Bambi_C 2017-11-08
计算机里是不存在什么字母的,所有char类型字符都是以ASCII码的形式存储在内存中 也就是说 'A'(65)<'B'(66)
  • 打赏
  • 举报
回复
相关推荐
发帖
C语言
加入

6.5w+

社区成员

C语言相关问题讨论
申请成为版主
帖子事件
创建了帖子
2017-11-07 07:33
社区公告
暂无公告