递归实现逆序输出整数 (15分)
本题目要求读入1个正整数n,然后编写递归函数reverse(int n)实现将该正整数逆序输出。
输入格式:
输入在一行中给出1个正整数n。
输出格式:
对每一组输入,在一行中输出n的逆序数。
输入样例:
12345
输出样例:
54321
如果输入1234567890,根据题目要求是输出0987654321
还是987654321
我的程序。。运行超时?
#include<stdio.h>
void pin(int n)
{
int m;
m=n%10;
n=n/10;
if(m!=0)
printf("%d",m);
pin(n);
}
int main()
{
int n;
scanf("%d",&n);
pin(n);
}
别人的程序,运行正常。。
# include<stdio.h>
int pin(int n,int a[],int i);
int main()
{
int n,i,a[1000];
scanf("%d",&n);
pin(n,a,0);
return 0;
}
int pin(int n,int a[],int i)
{
a[i]=n%10;
n/=10;
printf("%d",a[i]);
i++;
return ((n==0)? 0:pin(n,a,i));
}
为什么要用数组呢,为什么用这么多形参呢,改改
# include<stdio.h>
int pin(int n);
int main()
{
int n;
scanf("%d",&n);
pin(n);
return 0;
}
int pin(int n)
{
static m;
m=n%10;
n/=10;
printf("%d",m);
return ((n==0)? 0:pin(n));
}