请用c语言编写递归函数,输出指定范围内的整数。 函数原型 void ListDsc(int lower, int upper);
时间: 2023-06-17 07:06:54 浏览: 345
以下是使用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(n),实现将非负整数n逆序输出
好的,下面是用C语言编写的递归函数reverse(n),实现将非负整数n逆序输出的代码:
```c
#include <stdio.h>
void reverse(int n){
if(n < 10){
printf("%d", n);
return;
}
else{
printf("%d", n % 10);
reverse(n / 10);
}
}
int main(){
int num = 12345;
printf("The reverse of %d is: ", num);
reverse(num);
printf("\n");
return 0;
}
```
在这个例子中,我们定义了一个递归函数reverse,该函数接受一个非负整数n作为参数并将其逆序输出。当n小于10时,我们只需输出n。否则,我们输出n的个位数,然后递归调用函数reverse,并传入n的十位数及以上部分。最后,我们在主函数中测试这个函数,输出12345的逆序结果。
希望这个例子可以帮助您理解如何使用C语言编写递归函数。