我这么写有问题吗?为什么运行不出来?
#include <stdio.h>
int main() {// 1 3 5 7 9 能组成多少种不同的4位数字
int i = 1, j = 1, k = 1, l = 1;
for (i; (i < 10 && i % 2 == 1); i++) {
for (j; (j < 10 && j % 2 == 1); j++) {
for (k; k < 10 && (k % 2 == 1); k++) {
for (l; l < 10 && (l % 2 == 1); l++) {
if (i != j && i != k && i != l && j != k && j != l && k != l) {
printf("%d%d%d%d\n", i, j, k, l);
}
}
}
}
}
}
// 1234能组成多少种不同的三位数字
//int main() {
// for(int i = 1 ; i <= 4; i++) {
// for (int j = 1; j <= 4; j++) {
// for (int k = 1; k <= 4; k++) {
//
// if ((i != j) && (j != k) && (i != k)) {
// printf("%d %d %d\n", i,j,k);
//
//
// }
// }
// }
//
// }
// return 0;
//}
你应该直接写i+=2,而不是把条件写进第二项里
否则第二项不满足,循环就结束了
你可以这样找这些数字的三个数的子集,然后再组数