题目:定义递归函数void convert(int n)完成将一个整数n转换成字符串,编写程序在主函数中输入整数n,并调用该函数输出结果。
例如输入整数“789”,应输出字符序列’7’ ‘8’’9’。n的位数不固定,可以是任意位数的整数。
提示:将一个整数n分解成字符序列,首先将问题划分成两个部分,一部分是终止递归的条件,另一部分是继续更深层次递归的条件。
1) 当n / 10 != 0 时,将n / 10作为参数继续更深层次递归
2) 否则,如果当n / 10 = 0时(即n为1位数,可以直接转换),把整数n转换成单个字符并输出c = n % 10 + ’0’,打印c
#include<stdio.h>
void convert(int n);
int main()
{
int n;
printf("输入整数:\n");
scanf("%d", &n);
if (n < 0)
{
printf("输出字符序列:\n");
printf("- ");
n = -n;
}
else
{
printf("输出字符序列:\n");
}
convert(n);
printf("\n");
return 0;
}
void convert(int n)
{
int i;
if ((i = n / 10) != 0)
convert(i);
printf("%c ", n % 10 + '0');
}