超简单的C++程序改错

来源:百度知道 编辑:UC知道 时间:2024/06/18 00:24:59
/*编写f(s,i,j)函数采用递归方法实现数组逆置,i指向数组开始,j指向数组
末尾,每次将s的第i个元素和第j个元素进行交换,直到i大于或等于j为止。*/
#include<iostream.h>
#include<string.h>
void f(char s[],int i,int j)
{
cout<<s[j]+48<<' ';
char m=s[i]+48;
i++;
j--;
if(i<j)f(s,i,j);
cout<<m<<' ';
}
void main(void)
{
char s[60];
int n;
cout<<"请输入一个数组:"<<endl;
cin>>s;
n=strlen(s);
cout<<"逆置后的数组为:"<<endl;
f(s,0,n-1);
}

你只做了逆序输出但是没有交换。
void f(char s[],int i,int j)
{
cout<<s[j]+48<<' '; .
char m=s[i];
s[i]=s[j]; //这里加上一句交换。
s[j]=m;
i++;
j--;
if(i<j)f(s,i,j);
cout<<m<<' ';
}

自己-来