码农的世界程序员程序书海

连载一

2018-07-04  本文已影响30人  逍遥_9353

/*IBM减一

样例输入

2

HAL

SWERC

样例输出

String #1

IBM

String #2

TXFSD

*/


思路分析:观察案例可知,输出字母是输入字母的后一个,而Z对应的则是A。通过if―else语句即可完成要求。



//方法一:

#include<iostream>

#include<vector>

#include<string>

#include<algorithm>

using namespace std;

int main()

{

int num;

vector<string>v;

vector<string>::iterator it;

cin>>num;

for(int i=0;i<num;i++)

{

string temp;

cin>>temp;

v.push_back(temp);

}

int n = 1;

for(it=v.begin();it!=v.end();it++)

{

string temp;

temp = *it;

cout<<"string #"<<n++<<endl;

for(int j=0;j<temp.length();j++)

{

if(temp[j]=='Z')

cout<<'A';

cout<<char(temp[j]+1);

}

cout<<endl;

}

return 0;

}   

*/

//方法二:

#include<iostream>

#include<string>

using namespace std;

int main()

{

int n;

while(cin>>n)

{

string s;

while(cin>>s)

{

for(int j=0;j<s.length();j++)

{

if(s[j]=='Z')

{

cout<<'A';

}

cout<<char(s[j]+1);

}

cout<<endl;

}

}

return 0;

}


连载一

/*荷兰国旗问题

样例输入

3

BBRRWBWRRR

RRRWWRWRB

RBRW

样例输出

RRRRRWWBBB

RRRRRWWWB

RRWB

*/


思路分析:本题关键是如何输入一行案例,计算出三种字母的个数,按循序输出。


#include<iostream>

#include<cstring>

using namespace std;

int main()

{

int n;

cin>>n;

cin.get();//吸收尾部标记

for(int i=0;i<n;i++)

{

char s[100];

cin.getline(s,100,'\n');//读取一行

int len = strlen(s);

int r = 0,w = 0,b = 0;

for(int i=0;i<len;i++)

{

if(s[i]=='R')

r++;

else

{

if(s[i]=='W')

w++;

else

b++;

}

}

for(int i=0;i<r;i++)

cout<<'R';

for(int j=0;j<w;j++)

cout<<'W';

for(int k=0;k<b;k++)

cout<<'B';

cout<<endl;

}

return 0;

}


连载一

/*空格字符与非空格字符统计

样例输入

123fe*&54 0934j

df *A  S

样例输出

14 1

5 3

*/


思路分析:关键在于如何判断已经输完字符串。


#include<iostream>

using namespace std;

int main()

{

char ch;

int m = 0,n = 0;

while(!cin.eof())

{

if((ch=cin.get())!=' ')

{

if((ch!='\n')&&(ch!=-1))//-1表示文件尾部标志

m++;

else

{

cout<<m<<" "<<n<<endl;

m = 0,n = 0;

}

}

else

n++;

}

return 0;


连载一
上一篇下一篇

猜你喜欢

热点阅读