求3种颜色球的取法
口袋中红、黄、白、黑5种颜色的球若干个。每次从口袋中先后取出3个球,问得到3种不同颜色的球的可能取法,输出每种排列的情况。
回复 楼主 afdgaerlkge
程序代码:
// 口袋中红、黄、蓝、白、黑5种颜色的球若干个。每次从口袋中先后取出3个球,问得到3种不同颜色的球的可能取法, // 输出每种排列的情况 #include <stdio.h> void print_color(int p); int main() { int i, j, k, n = 0, p, q, r, arr[100]; 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[n] = 100 * i + 10 * j + k; n++; } } } } printf("共有 %d 种取法:\n", n); for (i = 0;i < n;i++) { p = arr[i] / 100; print_color(p); // 输出第一个拿出来的小球 q = (arr[i] / 10) % 10; print_color(q); // 输出第二个拿出来的小球 r = arr[i] % 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; } }