乐乐学编程 发表于 2021-1-2 14:33:33

3种不同颜色的球的可能取法

口袋中红、黄、蓝、白、黑5种颜色的球若干个。每次从口袋中先后取出3个球,问得到3种不同颜色的球的可能取法,输出每种排列的情况

风过无痕1989 发表于 2021-1-2 14:44:16

// 口袋中红、黄、蓝、白、黑5种颜色的球若干个。每次从口袋中先后取出3个球,问得到3种不同颜色的球的可能取法,
// 输出每种排列的情况
#include <stdio.h>
void print_color(int p);
int main()
{
    int i, j, k, n = 0, p, q, r, arr;
    for (i = 1;i < 6;i++)
    {
      for (j = 1;j < 6;j++)
      {
            for (k = 1;k < 6;k++)
            {
                if (i != j && j != k && k != i)
                {
                  arr = 100 * i + 10 * j + k;
                  n++;
                }
            }
      }
    }
   
    printf("共有 %d 种取法:\n", n);
    for (i = 0;i < n;i++)
    {
      p = arr / 100;
      print_color(p);      // 输出第一个拿出来的小球
      q = (arr / 10) % 10;
      print_color(q);      // 输出第二个拿出来的小球
      r = arr % 10;
      print_color(r);      // 输出第三个拿出来的小球
      printf("\n");
    }
}

void print_color(int p)
{
    switch (p)
    {
    case 1:printf("红 ");break;
    case 2:printf("黄 ");break;
    case 3:printf("蓝 ");break;
    case 4:printf("白 ");break;
    case 5:printf("黑 ");
    return 0;
    }
}
页: [1]
查看完整版本: 3种不同颜色的球的可能取法