2017最新刑事诉讼法:c语言问题:利用递归函数调用方式,将所输入的5个字符,逆序输出

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/18 19:04:31
#include "stdio.h"
main()
{
int i=5;
void palin(int n);
printf("\40:");
palin(i);
printf("\n");
}
void palin(n)
int n;
{
char next;
if(n<=1)
{
next=getchar();
printf("\n\0:");
putchar(next);
}
else
{
next=getchar();
palin(n-1);
putchar(next);
}
}
这是网上找的一段源代码,自己分析了,看不出什么问题来,可是运行结果不对,比如我输入1 2 3 4 5 ,输出的是3 2 1,只将前三个字符逆序了啊,恳请请大家指点迷津!!!

程序没问题的 , 我想你是在输入时加了空格了吧,getchar()和putchar()函数会把空格也当作字符输入存储的,所以在输入1 2 3的时候就已经达到5个字符了,你可以试试把程序中的5改成9试试,那就应该没问题了。

你在输入的时候不要加空格就可以了~! 因为你定义的是字符形式的
这个程序不好,因为在主函数中的第一个palin();没有意义.
#include<stdio.h>
int a[5],i=0;
void sun(int i)
{
if(i<=4)
{
scanf("%d",&a[i]);
sun(i+1);
}
}

void main()
{
sun(i);
for(i=4;i>=0;i--)
printf("%d ",a[i]);
}

我用 win-tc编译等第一个结果出来的时候,你再按这个回车的就有结果了,用vc就不用,直接出结果.
要连续输!!!!!!!11