"上升数"是指右边数字都比左边数字大的自然数。例如123,右边的数字都大于左边。输入两个正整数,a 和 b(且保证 a<b),输出 a和b之间(包括a和b在内)的所有"上升数"C语言
时间: 2024-12-19 12:17:26 浏览: 9
在C语言中,你可以使用嵌套循环和条件判断来生成并打印a到b之间的所有上升数。以下是一个简单的实现步骤:
```c
#include <stdio.h>
// 函数声明
void printIncreasingNumbers(int start, int end);
int main() {
int a, b;
printf("请输入两个正整数a和b(a < b):");
scanf("%d %d", &a, &b);
// 调用函数,生成并打印上升数
printIncreasingNumbers(a, b);
return 0;
}
// 辅助函数:打印上升数
void printIncreasingNumbers(int low, int high) {
for (int i = low; i <= high; i++) { // 遍历范围内的每个数
char num[50]; // 创建临时字符串存储数字
int j = 0;
// 将数字转换成字符数组
while (i > 0) {
num[j++] = '0' + i % 10; // 取余得到当前位数并转换为字符
i /= 10; // 移除最低位
}
// 从右向左检查每一位是否小于前一位
for (int k = j - 1; k >= 0 && num[k] <= num[k+1]; k--) {} // 如果有不符合上升数条件的地方就跳出
// 没有违反上升数规则,打印结果
if (k == -1)
printf("%s\n", num); // 打印数字
}
}
阅读全文