书上有这么一题:
编写一个程序采用递归方法逆序放置a数组中的元素,假定a有5个元素
#include "stdafx.h" #include "iostream.h" char a[5]; int i,n; void input(); int xf(int n,char a[]); void output(); void main(int argc, char* argv[]) { input(); xf(5,a); output(); }
void input() { cout<<"请为数组a输入5个元素:"<<endl; for(i=0;i<=4;i++) cin>>a[i]; }
int xf(int n,char a[]) { char t=a[n-1]; a[n-1]=a[5-(n-1)-1]; a[5-(n-1)-1]=t; if(n=0) return 0; else return (n-1); }
void output() { for(i=0;i<=4;i++) {cout<<a[i];} cout<<endl; }
我试过了,编译没有问题,但只能交换a[0]和a[4]
比如说,输入asdfg,应该输出gfdsa,而输出的是gsdfa,请问这怎么回事???