WJbobo 发表于 2008-5-14 14:45

求教

1.输入一不含空格的字符串,将该字符串中的字符按从小到大的顺序输出。如输入“nihao”,则输出“ahino”.
这道看是很简单.但我就是做不出来.那位前辈能告诉我思路.
2.        捕鱼与分鱼        A B C D E 五人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。日上三杆,A第一个醒来,他将鱼分为5份,把多余的1条鱼扔掉,拿走自己的1份。B第二个醒来,也将鱼分为5份,把多余的1条扔掉,拿走自己的一份。C、D、E 依次醒来,也按同样的方法拿鱼。问他们合伙至少捕了多少鱼?
想不出来哦.
3完全数的条件是什么呢?

newyj 发表于 2008-5-14 16:48

#include<iostream>
#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;
}

zjl138 发表于 2008-5-14 16:59

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;
答案当然就不正确了。。

newyj 发表于 2008-5-14 17:40

是不是 if只管var=str[i]; 因为 有";"所以就截止了
而下面的两句 就是 小于的时候 所执行的

WJbobo 发表于 2008-5-15 09:48

编译器不一样还是你们学的不一样。好多的看不懂啊!你们的输入输出和我们学的不一样。

忘记喧嚣 发表于 2008-5-16 13:21

字符 可以直接比较 ,比较的时候 是用他们的 ASC码进行比较 和数比较没什么区别

WJbobo 发表于 2008-5-30 10:39

谢谢。

zzy840208 发表于 2008-5-31 23:14

解第一道题!

//------------------------------------------------------------------
// 解答:输入一不含空格的字符串,将该字符串中的字符按从小到大的顺序输出。
// 如输入“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;
}

WJbobo 发表于 2008-6-4 10:11

谢谢各位大哥们了,小弟感激不尽。

页: [1]

编程论坛