C/C++基礎(chǔ)題 | 找出三對(duì)賽手的名單
編輯
切換為居中
添加圖片注釋,不超過 140 字(可選)
根據(jù)題目所給的條件和限制,我們可以編寫以下的C語言程序來找出符合要求的3對(duì)賽手的名單:
#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;
}
該程序通過嵌套循環(huán)遍歷甲隊(duì)和乙隊(duì)的隊(duì)員,排除不符合要求的對(duì)手后,將符合要求的賽手名單存儲(chǔ)在二維數(shù)組match中,并最后輸出比賽名單。
運(yùn)行該程序?qū)⒌玫椒弦蟮娜龑?duì)賽手名單,例如:
比賽名單如下:
A vs Y
B vs Z
C vs Y
以上結(jié)果滿足題目中的條件,A不和X比賽,C不和X、Z比賽。
附之前未使用GPT的法
常駐開頭:如果你已經(jīng)有編程經(jīng)驗(yàn),請(qǐng)忽略這個(gè)貼,基礎(chǔ)題對(duì)你起不了太多幫助,直接刷力扣就好啦。
這些題以大學(xué)生最常用的一本書譚浩強(qiáng)《C語言程序設(shè)計(jì)》為主,如果你是應(yīng)付期末考試、專升本,符合你的需求,因?yàn)檫@本書就是很多考試的標(biāo)準(zhǔn)。
例75:兩個(gè)乒乓球隊(duì)進(jìn)行比賽,各出3個(gè)人。甲隊(duì)為A,B,C,3人,乙對(duì)為X,Y,Z,3人,已抽簽決定比賽名單。有人向隊(duì)員打聽比賽的名單,A說他不和X比賽,C說他不和X,Z比賽,C語言編程程序找出3對(duì)賽手的名單。?
解題思路:整個(gè)執(zhí)行部分只有一個(gè)語句,所以只在語句的最后有一個(gè)分號(hào)。請(qǐng)讀者弄清楚循環(huán)和選擇結(jié)構(gòu)的嵌套關(guān)系,題目給的是A,B,C,X,Y,Z,而程序中用了加撇號(hào)的字符常量‘X’,'Y','Z',這是為什么?這是為了在運(yùn)行時(shí)能直接輸出字符A,B,C,X,Y,Z,以表示3組對(duì)抗的情況。
C語言源碼演示:
#include<stdio.h>//頭文件
int main()//主函數(shù)
{
? char i,j,k;//定義字符變量
? for(i='x';i<='z';i++)//i是a的對(duì)手;j是b的對(duì)手;k是c的對(duì)手
? {
? ? 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);//輸出結(jié)果
? ? ? ? ? ? }
? ? ? ? ? }
? ? ? ? }
? ? ? }
? ? }
? }
? return 0;//主函數(shù)返回值為0
}
編譯運(yùn)行結(jié)果如下:
A--z
B--x
C--y
--------------------------------
Process exited after 0.08659 seconds with return value 0
請(qǐng)按任意鍵繼續(xù). . .
上述代碼,學(xué)長用了最基礎(chǔ)的方法去實(shí)現(xiàn)了,讀者看著會(huì)很容易看明白,但也造成了嵌套了好幾層循環(huán),感興趣的讀者可以自己試著優(yōu)化一下。
C++源碼演示:
#include <iostream>
#include<cstdio>
using namespace std;
int main()//主函數(shù)
{
? char i,j,k;//定義字符變量
? for(i='x';i<='z';i++)//i是a的對(duì)手;j是b的對(duì)手;k是c的對(duì)手
? {
? ? 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;//輸出結(jié)果
? cout<<"B--"<<j<<endl;
? cout<<"C--"<<k<<endl;
? ? ? ? ? ? }
? ? ? ? ? }
? ? ? ? }
? ? ? }
? ? }
? }
? return 0;//主函數(shù)返回值為0
}
編譯運(yùn)行結(jié)果:
A--z
B--x
C--y
--------------------------------
Process exited after 0.06169 seconds with return value 0
請(qǐng)按任意鍵繼續(xù). . .