#include<iostream>
#include<string>
main()
{
using namespace std;
string word;
cout<<"enter a word"<<endl;
cin>>word;
char temp;
int i,j;
for(j=0,i=word.size()-1;j<i;--i,++j)
{
temp=word[i];
word[i]=word[j];
word[j]=temp;
}
cout<<word<<endl;
return 0;
}
这是书上的一个字符数组颠倒排序,但是在for循环中,是先对i,j减一和加一后再使用,word数组中的第一个字符和最后一个字符应该是没有替换么!但是结果是正确的。
按照我自己的思路,把for(j=0,i=word.size()-1;j<i;--i,++j)改为for(j=0,i=word.size()-1;j<i;i--,j++),这样的话,完成了整个数组的颠倒替换操作!得到的结果也是正确的。求解
#include<string>
main()
{
using namespace std;
string word;
cout<<"enter a word"<<endl;
cin>>word;
char temp;
int i,j;
for(j=0,i=word.size()-1;j<i;--i,++j)
{
temp=word[i];
word[i]=word[j];
word[j]=temp;
}
cout<<word<<endl;
return 0;
}
这是书上的一个字符数组颠倒排序,但是在for循环中,是先对i,j减一和加一后再使用,word数组中的第一个字符和最后一个字符应该是没有替换么!但是结果是正确的。
按照我自己的思路,把for(j=0,i=word.size()-1;j<i;--i,++j)改为for(j=0,i=word.size()-1;j<i;i--,j++),这样的话,完成了整个数组的颠倒替换操作!得到的结果也是正确的。求解

