利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来

来源:百度知道 编辑:UC知道 时间:2024/06/13 21:36:38
#include<stdio.h>
void main()
{
int i,j,k;
int a[5];
char ch;
printf("please input five letter:");
ch=getchar();
for(i=0;i<=4;i++)
{ch=getchar();
a[i]=ch;
}
for(i=4;i>=0;i--)
{
printf("%d",a[i]);
}
}

输出是1049494949 不知道为什么 谁能告诉我?

递归的这样写:

#include <stdio.h>

void Reverse(char *s)
{
if(*s)
{
Reverse(s+1);
putchar(*s);
}
}

void main()
{
Reverse("123456");
}

这个程序本身有问题。你定义的数组是整型,输出也是整型输出,赋值却是字符型,前后不匹配。应该char a[5];输出时也应该是%c输出。这个是用数组做的,不是递归函数调用

#include<iostream>
using namespace std;
void iochar(int);
void main()
{
cout<<"请输入10个字符:"<<endl;
iochar(10);
cout<<endl;
}
void iochar(int n)
{
char c;
if(n<=1)
{
cin>>c;
cout<<c;
}
else
{
cin>>c;
iochar(n-1);
cout<<c;
}
}

#include<stdio.h>
void main()
{
int i,j,k;
int a[5];
char ch;
printf("please input five letter:");
ch=getchar();
for(i=0;i<=4;i++)
{ch=getchar();
a[i]=ch;
}
for(i=4;i>=0;i--)