求助。C++二维数组引用的问题
#include<iostream>
#include<string>
using namespace std;
int main()
{
void exchange(char &a,char &b,char &c);
char a[3][20];
int i;
for(i=0;i<3;i++)
cin>>a[i];
exchange(a[1],a[2],a[3]);
cout<<a[1]<<' '<<a[2]<<' '<<a[3]<<endl;
return 0;
}
void exchange(char &a,char &b,char &c)
{
void ex(char &a,char &b);
if(a>b)ex(a,b);
if(a>c)ex(a,c);
if(b>c)ex(b,c);
}
void ex(char &a,char &b)
{
char temp;
temp=a,a=b,b=temp;
}
编译出错,说明二维数组不能用引用么?如果非要用二维数组引用由方法么?
不要用三个一维数组做
[解决办法]
- C/C++ code
#include<iostream>#include<string>using namespace std;void exchange(char *a, char *b, char *c);void ex(char *a, char *b);int main(){ char a[3][20]; for(int i=0; i<3; i++) cin>>a[i]; exchange(a[0], a[1], a[2]); cout<<a[0]<<' '<<a[1]<<' '<<a[2]<<endl; return 0;}void exchange( char *a, char *b, char *c ){//这样比大小没用的,逐个比字符 if(a>b) ex(a, b); if(a>c) ex(a, c); if(b>c) ex(b, c);}void ex(char *a,char *b){ int len; char c; len = strlen(a); if (strlen(b) > len) len = strlen(b); for (int i=0; i<len; i++) { c=a[i]; a[i]=b[i]; b[i]=c; }; }