给出此题的C语言代码
时间: 2024-11-01 21:05:46 浏览: 3
C语言教材课后习题源代码
在C语言中,我们通常会使用嵌套循环结构来生成所有的三位数,其中每位数字各不相同。下面是一个简单的示例代码:
```c
#include <stdio.h>
int main() {
// 初始化结果数组,用于存储三位数
int result[1000] = {0}; // 0-999,共1000个位置,实际不需要全部初始化
int count = 0;
// 遍历百位(从1到9)
for(int hundred = 1; hundred < 10; hundred++) {
// 遍历十位(避开百位数字),从0到hundred - 1
for(int ten = 0; ten < hundred; ten++) {
// 避免重复,遍历个位(也避开百位和十位数字)
for(int one = 0; one < hundred && one != ten; one++) {
// 将数字组合并转换为字符串添加到结果数组
char num[4];
sprintf(num, "%d%02d%02d", hundred, ten, one);
result[count++] = atoi(num); // 转换回整数形式并存入结果数组
}
}
}
// 打印结果(已排序,因为我们不需要)
// 因为题目要求只输出一行,此处省略排序步骤
for(int i = 0; i < count; i++) {
printf("%d ", result[i]);
}
return 0;
}
```
注意:由于结果量大,这段代码实际上并不会将所有结果打印出来,因为这可能会导致内存溢出。在实际运行中,我们需要控制输出的方式或者仅保存结果而不立即打印。
阅读全文