云南旅游历史行情:会C++来看一下!

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 09:15:53
#include<iostream.h>
#include<string.h>
void main()
{
void inverse(char *);
do
{
char s[50];
char a;
cout<<"输入一个字符串:";
cin>>s;
cout<<"您输入的字符串:"<<s<<endl;
inverse(s);
cout<<"反序后的字符串:"<<s<<endl;
cout<<"你想继续还是退出?继续请按y,退出请按n!"<<endl;
cin>>a;

}while(a=='y');
}
void inverse(char *p)
{
int n=strlen(p);
int limit=n/2;
for(int i=0;i<limit;i++)
{
char t;
t=*(p+i);
*(p+i)=*(p+n-1-i);
*(p+n-1-i)=t;

}

}
哪里错了?

字符变量"a" 的作用范围在do...while循环之内,不能作用在while语句之中,适当调整就可以

#include<iostream.h>
#include<string.h>
void main() {
void inverse(char *);
char a;
do {
char s[50];
cout<<"输入一个字符串:";
cin>>s;
cout<<"您输入的字符串:"<<s<<endl;
inverse(s);
cout<<"反序后的字符串:"<<s<<endl;
cout<<"你想继续还是退出?继续请按y,退出请按n!"<<endl;
cin>>a;
}while(a=='y');
}

void inverse(char *p) {
int n=strlen(p);
int limit=n/2;
for(int i=0;i<limit;i++) {
char t;
t=*(p+i);
*(p+i)=*(p+n-1-i);
*(p+n-1-i)=t;
}
}

初学者要注意变量的生存范围啊。