【C++练习】生成并打印所有可能的三色组合

题目:

生成并打印所有可能的三色组合

描述

给定一个包含5种颜色的列表(红色、黄色、蓝色、白色、黑色),请编写一个程序,使用C++生成并打印出该列表中所有可能的三色组合。每个组合应包含三种不同的颜色,并且组合中的颜色顺序不重要(即,组合 "红, 黄, 蓝" 与 "黄, 红, 蓝" 视为相同的组合,只需输出其中一种)。

要求

  1. 使用向量(vector)来存储颜色列表和生成的三色组合。
  2. 使用三重嵌套循环来遍历颜色列表,并生成所有可能的三色组合。
  3. 最后,遍历并打印出所有生成的三色组合,每个组合中的颜色用逗号分隔,并且每个组合占一行。

输入

无需输入,颜色列表已给定,为 {"红", "黄", "蓝", "白", "黑"}

输出

输出应包含所有可能的三色组合,每个组合占一行,颜色之间用逗号分隔。输出的顺序不要求特定顺序,但每种组合应只出现一次。

源代码:

#include <iostream>  
#include <vector>    
using namespace std;  

int main() {
    // 初始化一个包含5种颜色的向量  
    vector<string> colors = { "红", "黄", "蓝", "白", "黑" };

    // 初始化一个二维向量,用于存储所有可能的三色组合  
    vector<vector<string>> combinations;

    // 三重嵌套循环,用于生成所有可能的三色组合  
    for (int i = 0; i < colors.size(); ++i) {  // 外层循环,选择第一个颜色  
        for (int j = i + 1; j < colors.size(); ++j) {  // 中层循环,选择第二个颜色  
            for (int k = j + 1; k < colors.size(); ++k) {  // 内层循环,选择第三个颜色  
                // 创建一个包含当前三个颜色的向量  
                vector<string> combo = { colors[i], colors[j], colors[k] };
                // 将当前组合添加到组合列表中  
                combinations.push_back(combo);
            }
        }
    }

    // 遍历并打印所有组合  
    for (const auto& combo : combinations) {
        cout << combo[0] << ", " << combo[1] << ", " << combo[2] << endl;
    }

    return 0;
}

运行截图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值