输出多种组合

新手上路,请多包涵

我试图以特定顺序输出所有这些变量 abc acb bac bca cab cba 但它只输出 xyz xzy yxz yzx zxy zyx 而不是 #$% #%$ $#% $%# %#$ %$#123 132 213 231 312 321 。如何使它在测试这些值时输出 xyz xzy yxz yzx zxy zyx#$% #%$ $#% $%# %#$ %$#123 132 213 231 312 321

按如下所示的顺序输出字符变量 a、b 和 c 的所有组合。如果 a = 'x', b = 'y', and c = 'z' ,则输出为: xyz xzy yxz yzx zxy zyx

您的代码将在三个不同的程序中进行测试,a、b、c 分配有 ‘x’、’y’、’z’,然后分配有 ‘#‘、’$‘、’%‘,然后分配有 ‘1’, ‘2’,’3’。

 #include <iostream>
using namespace std;

int main() {
   char a;
   char b;
   char c;

   cin >> a;
   cin >> b;
   cin >> c;

   a = 'x';
   b = 'y';
   c = 'z';

   cout << a << b << c << " ";
   cout << a << c << b << " ";
   cout << b << a << c << " ";
   cout << b << c << a << " ";
   cout << c << a << b << " ";
   cout << c << b << a << "";

   cout << endl;

   return 0;
}

原文由 152151 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 463
1 个回答

这是一个基本的变量分配问题。您基本上可以读取输入并打印变量,它将打印分配给变量的任何值。下面的代码片段是用 Java 编写的,但它让您了解如何根据要求以不同的组合打印变量。整个程序如下。

 public class OutputCombinations {
   public static void main(String[] args) {
      Scanner scnr = new Scanner(System.in);
      char a;
      char b;
      char c;

      a = scnr.next().charAt(0);
      b = scnr.next().charAt(0);
      c = scnr.next().charAt(0);

      System.out.print(""+a+b+c+" "+a+c+b+" "+b+a+c+" "+b+c+a+" "+c+a+b+" "+c+b+a);

      System.out.println("");
   }
}

这不是编程在现实世界中的工作方式,但这只是为了分配。在我们进一步学习和探索的同时,我们可以根据收到的输入数量递归地打印它们。

原文由 beyondprogramming 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题