龙空技术网

C/C++基础题 | 找出三对赛手的名单

科大云炬 55

前言:

而今看官们对“谭浩强c语言试题”都比较注重,各位老铁们都想要了解一些“谭浩强c语言试题”的相关内容。那么小编同时在网络上汇集了一些对于“谭浩强c语言试题””的相关资讯,希望你们能喜欢,咱们一起来学习一下吧!

根据题目所给的条件和限制,我们可以编写以下的C语言程序来找出符合要求的3对赛手的名单:

#include <stdio.h>

int main() {

char teamA[3] = {'A', 'B', 'C'};

char teamB[3] = {'X', 'Y', 'Z'};

char match[3][2];

for (int i = 0; i < 3; i++) {

for (int j = 0; j < 3; j++) {

if (teamA[i] == 'A' && teamB[j] == 'X')

continue;

else if (teamA[i] == 'C' && (teamB[j] == 'X' || teamB[j] == 'Z'))

continue;

else {

match[i][0] = teamA[i];

match[i][1] = teamB[j];

break;

}

}

}

printf("比赛名单如下:\n");

for (int i = 0; i < 3; i++) {

printf("%c vs %c\n", match[i][0], match[i][1]);

}

return 0;

}

该程序通过嵌套循环遍历甲队和乙队的队员,排除不符合要求的对手后,将符合要求的赛手名单存储在二维数组match中,并最后输出比赛名单。

运行该程序将得到符合要求的三对赛手名单,例如:

比赛名单如下:

A vs Y

B vs Z

C vs Y

以上结果满足题目中的条件,A不和X比赛,C不和X、Z比赛。

附之前未使用GPT的法

常驻开头:如果你已经有编程经验,请忽略这个贴,基础题对你起不了太多帮助,直接刷力扣就好啦。

这些题以大学生最常用的一本书谭浩强《C语言程序设计》为主,如果你是应付期末考试、专升本,符合你的需求,因为这本书就是很多考试的标准。

例75:两个乒乓球队进行比赛,各出3个人。甲队为A,B,C,3人,乙对为X,Y,Z,3人,已抽签决定比赛名单。有人向队员打听比赛的名单,A说他不和X比赛,C说他不和X,Z比赛,C语言编程程序找出3对赛手的名单。

解题思路:整个执行部分只有一个语句,所以只在语句的最后有一个分号。请读者弄清楚循环和选择结构的嵌套关系,题目给的是A,B,C,X,Y,Z,而程序中用了加撇号的字符常量‘X’,'Y','Z',这是为什么?这是为了在运行时能直接输出字符A,B,C,X,Y,Z,以表示3组对抗的情况。

C语言源码演示:

#include<stdio.h>//头文件

int main()//主函数

{

char i,j,k;//定义字符变量

for(i='x';i<='z';i++)//i是a的对手;j是b的对手;k是c的对手

{

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\nB--%c\nC--%c\n",i,j,k);//输出结果

}

}

}

}

}

}

return 0;//主函数返回值为0

}

编译运行结果如下:

A--z

B--x

C--y

--------------------------------

Process exited after 0.08659 seconds with return value 0

请按任意键继续. . .

上述代码,学长用了最基础的方法去实现了,读者看着会很容易看明白,但也造成了嵌套了好几层循环,感兴趣的读者可以自己试着优化一下。

C++源码演示:

#include <iostream>

#include<cstdio>

using namespace std;

int main()//主函数

{

char i,j,k;//定义字符变量

for(i='x';i<='z';i++)//i是a的对手;j是b的对手;k是c的对手

{

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')

{

cout<<"A--"<<i<<endl;//输出结果

cout<<"B--"<<j<<endl;

cout<<"C--"<<k<<endl;

}

}

}

}

}

}

return 0;//主函数返回值为0

}

编译运行结果:

A--z

B--x

C--y

--------------------------------

Process exited after 0.06169 seconds with return value 0

请按任意键继续. . .

标签: #谭浩强c语言试题