求教
1.输入一不含空格的字符串,将该字符串中的字符按从小到大的顺序输出。如输入“nihao”,则输出“ahino”.这道看是很简单.但我就是做不出来.那位前辈能告诉我思路.
2. 捕鱼与分鱼 A B C D E 五人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。日上三杆,A第一个醒来,他将鱼分为5份,把多余的1条鱼扔掉,拿走自己的1份。B第二个醒来,也将鱼分为5份,把多余的1条扔掉,拿走自己的一份。C、D、E 依次醒来,也按同样的方法拿鱼。问他们合伙至少捕了多少鱼?
想不出来哦.
3完全数的条件是什么呢?
#include<string>
using namespace std;
int main(){
string str="0";
cout<<"请输入字符串:";
getline(cin,str);
char var='0';
for(int i=0;i!=str.size();i++)
for(int j=i+1;j!=str.size();j++){
if(str[i]>str[j]){ //如果去掉if两边的"{"话 输出就不正确 不知道 为什么?
var=str[i];
str[i]=str[j];
str[j]=var;
}
}
cout<<str<<endl;
getchar();
system("pause");
return 0;
} if(str[i]>str[j]){ //如果去掉if两边的"{"话 输出就不正确 不知道 为什么?
for的意思是如果:str[i]<=str[j],则continue.
str[i]>str[j]时:var=str[i];
str[i]=str[j];
str[j]=var;
你如果去掉if{...}中的{.........},那么当str[i]<=str[j]时,还会执行这两句: str[i]=str[j];
str[j]=var;
答案当然就不正确了。。 是不是 if只管var=str[i]; 因为 有";"所以就截止了
而下面的两句 就是 小于的时候 所执行的 编译器不一样还是你们学的不一样。好多的看不懂啊!你们的输入输出和我们学的不一样。 字符 可以直接比较 ,比较的时候 是用他们的 ASC码进行比较 和数比较没什么区别 谢谢。
解第一道题!
//------------------------------------------------------------------// 解答:输入一不含空格的字符串,将该字符串中的字符按从小到大的顺序输出。
// 如输入“nihao”,则输出“ahino”.
// ---zzy
// 2008.5.31
//---------------------------------------------------------------------
#include <iostream>
#include <string>
using namespace std;
int main()
{
cout<<"Please input a string:"<<endl;
string str;
cin>>str;
for(int i=str.size();i>0;--i) //用冒泡排序
for(int j=0;j<i-1;++j)
{
if(str[j]>str[j+1])
{
char temp=str[j+1];
str[j+1]=str[j];
str[j]=temp;
}
}
cout<<str<<endl;
return 0;
} 谢谢各位大哥们了,小弟感激不尽。
页:
[1]
