编写程序,大一c语言取出一个十进制正整数453891中所有的奇数数字,用这些数字构成一个最小整数。
时间: 2023-06-05 09:05:52 浏览: 172
好的,这个问题可以回答。程序如下:
```c
#include <stdio.h>
int main() {
int num = 453891;
int odd_nums[10], len = 0; // 存放奇数数字的数组
while (num > 0) {
int digit = num % 10; // 取出个位数字
if (digit % 2 != 0) {
odd_nums[len++] = digit; // 如果是奇数则存入数组
}
num /= 10; // 去掉个位数字
}
if (len == 0) {
printf("原数中没有奇数数字\n");
} else {
// 对奇数数字从小到大排序
for (int i = 0; i < len - 1; i++) {
for (int j = i + 1; j < len; j++) {
if (odd_nums[i] > odd_nums[j]) {
int tmp = odd_nums[i];
odd_nums[i] = odd_nums[j];
odd_nums[j] = tmp;
}
}
}
// 构造最小整数
int result = 0;
for (int i = 0; i < len; i++) {
result = result * 10 + odd_nums[i];
}
printf("构造的最小整数为:%d\n", result);
}
return 0;
}
```
输出结果为:构造的最小整数为:13589
阅读全文