请用c语言编写递归函数,输出指定范围内的整数。 函数原型 void ListDsc(int lower, int upper);
时间: 2023-06-17 16:06:54 浏览: 527
以下是使用C语言编写的递归函数,输出指定范围内的整数:
```c
#include <stdio.h>
void ListDsc(int lower, int upper) {
if (lower > upper) {
return;
}
printf("%d ", upper);
ListDsc(lower, upper - 1);
}
int main() {
int lower = 1, upper = 10;
ListDsc(lower, upper);
return 0;
}
```
这个函数会从上限开始递归,每次输出当前的上限值,并将上限值减1,递归调用自身直到上限值小于下限值。在上面的示例中,我们将下限设置为1,上限设置为10作为测试。
相关问题
请编写递归函数,输出指定范围内的整数。 函数原型 void ListDsc(int lower, int upper); 说明:参数 lower 和 upper 为指定范围的下限和上限。若 lower ≤ upper,则函数将按由大到小的顺序输出 upper 到 lower 的整数,否则不输出任何信息。 要求:不要使用循环语句。 裁判程序 #include <stdio.h> void ListDsc(int lower, int upper); int main() { int min, max; scanf("%d %d", &min, &max); ListDsc(min, max); return 0; } /* 你提交的代码将被嵌在这里 */
以下是递归函数 ListDsc 的实现:
```
void ListDsc(int lower, int upper) {
if (lower <= upper) {
printf("%d ", upper);
ListDsc(lower, upper-1);
}
}
```
函数的实现思路是,若下限 lower 小于等于上限 upper,则输出当前的上限值 upper,然后递归调用 ListDsc 函数,将上限值减一作为新的上限,继续输出。当下限大于上限时,递归终止,不再输出任何信息。
需要注意的是,递归调用时,参数的传递必须满足递归终止条件最先被满足,否则会导致无限递归,程序崩溃。因此,在递归调用 ListDsc 函数时,必须将上限值减一作为新的参数传递给函数。
c语言编写递归函数reverse(int n)实现将整数n逆序输出
在C语言中,你可以通过递归的方式编写一个函数`reverse`来实现整数n的逆序输出。这个函数的基本思路是先分解成两个部分:处理一位数字和处理剩余的多位数字。当n小于10的时候,就直接返回该数字;否则,将其除以10取余的结果添加到结果的前面,并递归调用自身处理去掉余数后的数值。
下面是一个简单的C语言函数示例:
```c
#include <stdio.h>
// 函数声明
void reverse(int n);
int main() {
int num = 12345;
printf("Reversed number: %d\n", reverse(num));
return 0;
}
// 递归函数实现
void reverse(int n) {
if (n >= 10) { // 当n大于等于10时,进行递归
int remainder = n % 10; // 取出个位
reverse(n / 10); // 递归处理十位及以上的部分
printf("%d", remainder); // 输出当前的余数
} else {
printf("%d", n); // 如果n小于10,直接输出
}
}
```
当你运行上面的程序,它会打印出整数12345的逆序形式,即54321。
阅读全文