使用递归和非递归逆向输出一个数组的所有元素
非递归实现:
例如:数组a为12345;逆质输出后为54321.
#include<stdio.h>
#include<string.h>
#define N 500 //表示宏定义,用500代替下面程序的N,可以根据自己的需要改
int main(void)
{
int i;
char a[N+1];
gets(a); //从键盘中输入数字
i=strlen(a)-1; //计算出输入数字的个数
for(i;i>-1;i--)
printf("%5d",a[i]-'0'); //由于数组中数字是以字符串的形式输入因此需要减去‘0’才能转换成数字
return 0;
}
递归实现:
#include<stdio.h>
#include<string.h>
#define N 500 //表示宏定义,用500代替下面程序的N,可以根据自己的需要改
void Preprint(char a[],int n)
{
if(n){
printf("%5d",a[n-1]-'0');
Preprint(a,n-1);
}
}
int main(void)
{ int n;
char a[N+1];
gets(a); //从键盘中输入数字
n=strlen(a); //计算出输入数字的个数
Preprint(a,n);
return 0;
}