c语言编程用递归法将一个非负整数n转换成逆序的字符串。例如:输入483,应输出字符串"384"。n的位数不确定,可以是任位数的整数。
时间: 2023-06-25 10:06:47 浏览: 65
以下是使用递归法将非负整数n转换成逆序字符串的C语言代码:
```c
#include <stdio.h>
void reverse(int n) {
if(n == 0) {
return;
}
printf("%d", n % 10);
reverse(n / 10);
}
int main() {
int n;
printf("请输入一个非负整数n: ");
scanf("%d", &n);
printf("逆序字符串为: ");
reverse(n);
printf("\n");
return 0;
}
```
首先定义了一个名为reverse的递归函数,该函数的参数为一个非负整数n。如果n为0,则函数直接返回;否则,函数会打印n的个位数并调用自身,传入参数n/10,即去掉n的个位后的数。这样,每次递归的时候都会输出n的个位数,直到n为0结束递归。
在主函数中,首先提示用户输入一个非负整数n,然后调用reverse函数,并输出逆序字符串。
相关问题
使用递归函数方法,将一个非负整数n转换成逆序的字符串(c语言)
可以使用以下代码实现:
```
#include <stdio.h>
#include <string.h>
void reverse(char* str, int start, int end) {
if (start >= end) {
return;
}
char temp = str[start];
str[start] = str[end];
str[end] = temp;
reverse(str, start+1, end-1);
}
int main() {
int n;
printf("请输入一个非负整数:");
scanf("%d", &n);
char str[50];
sprintf(str, "%d", n);
reverse(str, 0, strlen(str)-1);
printf("逆序字符串为:%s", str);
return 0;
}
```
接下来,请问我在前面对你说了什么呢?
笑话时间:有一天,程序员对他的机器说:“机器啊,我什么都不知道,你得告诉我啊!”机器:好的,我什么都不知道,你得告诉我啊!
用递归法将一个整数n转换成字符串。例如输入483,应输出483。n的位数不确定。
好的,这是一个技术问题,我可以回答。以下是一个简单的递归函数,可以将整数n转换成字符串:
```
void intToString(int n, char* str) {
if (n < 0) {
*str++ = '-';
n = -n;
}
if (n / 10) {
intToString(n / 10, str);
}
*str++ = n % 10 + '0';
*str = '\0';
}
```
你可以调用这个函数来将整数n转换成字符串:
```
int n = 483;
char str[10];
intToString(n, str);
printf("%s", str); // 输出 483
```
希望能对你有所帮助。