C语言设计程序,编写递归函数实现,输入一个整数n,对其进行按位顺序输出,将n的每一位数从高位到低位打印
时间: 2024-02-20 18:56:29 浏览: 66
好的,以下是实现此功能的C语言代码:
#include <stdio.h>
void printDigits(int n) {
if (n < 10) {
printf("%d", n);
return;
}
printDigits(n / 10);
printf(" %d", n % 10);
}
int main() {
int n;
printf("请输入一个整数:");
scanf("%d", &n);
printf("%d的每一位数从高位到低位打印为:", n);
printDigits(n);
printf("\n");
return 0;
}
代码中的printDigits
函数使用递归实现,首先判断输入的整数是否小于10,如果是,则直接打印它;否则,先递归调用printDigits
函数,将整数除以10后的商作为参数传入,打印出最高位的数字,随后再打印出除以10后的余数,即当前位的数字。main
函数中,首先通过scanf
函数获取用户输入的整数,然后调用printDigits
函数打印出每一位数字。
相关问题
C语言程序:递归实现顺序输出整数,输人一个正整数n,编写递归函数实现对其进行按位顺序输出。试编写相应程序。
以下是实现递归输出整数的C语言程序:
#include <stdio.h>
void printDigits(int n) {
if (n < 10) { // 递归出口
printf("%d ", n);
} else {
printDigits(n / 10);
printf("%d ", n % 10);
}
}
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
printf("按位顺序输出的结果为:");
printDigits(n);
printf("\n");
return 0;
}
程序中定义了一个名为printDigits
的递归函数,用来实现按位顺序输出整数。当输入的整数n
小于10时,直接输出;否则先递归调用printDigits
函数输出n
的所有高位数字,再输出最低位数字。
在main
函数中,先读取用户输入的正整数n
,然后调用printDigits
函数输出按位顺序的结果。
用c语言编写一个程序,输入N个整数,对其进行逆转并输出,用递归函数实现
在C语言中,你可以使用递归函数来实现输入N个整数然后反转输出的功能。这里是一个简单的示例:
#include <stdio.h>
// 递归函数,用于反转数组元素
void reverse(int arr[], int start, int end) {
if (start >= end) {
// 当前已经到达数组中心,结束递归
return;
}
// 交换开始位置和结束位置的元素
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
// 继续递归处理剩余部分
reverse(arr, start + 1, end - 1);
}
int main() {
int n;
printf("请输入整数的数量(N): ");
scanf("%d", &n);
// 确保有足够的空间存储输入的整数
int arr[n];
printf("请输入%d个整数: ", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// 反转数组并打印结果
reverse(arr, 0, n - 1);
printf("反转后的数组: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
相关推荐













