| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 452 人关注过本帖
标题:两种方式选择排序,see see~~~
只看楼主 加入收藏
lianjiecuowu
Rank: 3Rank: 3
来 自:安徽
等 级:论坛游侠
帖 子:152
专家分:107
注 册:2011-5-20
结帖率:85.71%
收藏
 问题点数:0 回复次数:9 
两种方式选择排序,see see~~~
#include<iostream>
#include <string>
using namespace std;
int shuz(int a[],int length);
int main()
{
    bool quit=false;
    int i;
    while(true)
    {
        int choice;
        cout<<"请输入您的选择 :"<<endl;
        cout<<"1.按数值大小进行排序"<<'\t'<<"2.按字符串大小进行排序"<<'\t'<<"3.quit"<<endl;
        cin>>choice;
        switch(choice)
        {
           case 1:
               {
                cout<<"您选择了按数值大小进行排序的选项"<<endl<<"请输入要排序6个数字:"<<endl;
                const int N=6;
                int data[N];
                for(i=0;i<N;i++)
                cin>>data[i];
                cout<<endl<<endl;
                shuz(data,N);
                break;
               }
           case 2:
               {
                  cout<<"您选择了按字符串大小进行排序的选项"<<endl<<"请输入要排序6个数字:"<<endl;
                  string s1,s2,s3,s4,s5,s6;
                  cin>>s1>>s2>>s3>>s4>>s5>>s6;
                  string a[6]={s1,s2,s3,s4,s5,s6};
                  for(i=0;i<5;i++)
                  for(int j=0;j<5-i;j++)
                  {
                    if(a[j]>a[j+1])
                    {
                       string temp;  
                       temp=a[j+1];
                       a[j+1]=a[j];
                       a[j]=temp;
                    }
                  }
                 for(i=0;i<6;i++)
                 cout<<a[i]<<'\t';
                 cout<<endl;
                 break;
               }
           case 3:
               {
                   quit=true;
                   break;
               }
           default:
               {
                   cout<<"输入有误"<<endl;
                   break;
               }
        }
        if(quit==true)
        break;
    }
    system("pause");
    return 0;
}
int shuz(int a[],int length)
{
    int i,j,temp;
    for(i=0;i<length;i++)
    cout<<a[i]<<'\t';
    cout<<endl<<endl;
    for(i=0;i<length-1;i++)
    for(j=0;j<length-i-1;j++)
    {
        if(a[j]>a[j+1])
        {
             temp=a[j];
             a[j]=a[j+1];
             a[j+1]=temp;
        }
      
    }
    cout<<"进行排序后:"<<endl;
    for(i=0;i<length;i++)
    cout<<a[i]<<'\t';
    return 0;
}
搜索更多相关主题的帖子: 字符串 false 
2011-06-18 16:52
爱德华
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:183
专家分:536
注 册:2011-5-29
收藏
得分:0 
你说的字符串大的大小排序是指的输入的数字还是里面的字符长度,如果是长度的话可以这样直接比较吗?

算法,数据结构,windows核心编程.
2011-06-18 17:30
lianjiecuowu
Rank: 3Rank: 3
来 自:安徽
等 级:论坛游侠
帖 子:152
专家分:107
注 册:2011-5-20
收藏
得分:0 
回复 2楼 爱德华
你可以自己试试啊都,嘿嘿

Sharp your mind!
2011-06-18 17:34
linw1225
Rank: 3Rank: 3
来 自:福建
等 级:论坛游侠
帖 子:110
专家分:145
注 册:2011-4-7
收藏
得分:0 
可以考虑下含有空格的字符串排序,比如:New York

Einmal ist keinmal
2011-06-18 18:36
ToBeStronger
Rank: 4
等 级:业余侠客
帖 子:61
专家分:239
注 册:2011-4-8
收藏
得分:0 
楼主写一个重载<操作符,然后用set存储string的程序吧
2011-06-18 19:30
lianjiecuowu
Rank: 3Rank: 3
来 自:安徽
等 级:论坛游侠
帖 子:152
专家分:107
注 册:2011-5-20
收藏
得分:0 
回复 4楼 linw1225
你的关于 空格的问题,原先有人说过,会程序崩溃,其实你输入的是两个字符串,new是一个,york是一个,不信你试试。本意你是输入了6个,其实无意中输入了 多余6个,这算是程序的一个大bug吧。会尝试改进的,嘿嘿

Sharp your mind!
2011-06-18 19:51
lianjiecuowu
Rank: 3Rank: 3
来 自:安徽
等 级:论坛游侠
帖 子:152
专家分:107
注 册:2011-5-20
收藏
得分:0 
回复 5楼 ToBeStronger
好,我试试。嘿嘿

Sharp your mind!
2011-06-18 19:52
爱德华
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:183
专家分:536
注 册:2011-5-29
收藏
得分:0 
写的不错啊!楼主肯定下了苦功夫的啊,

算法,数据结构,windows核心编程.
2011-06-19 13:59
爱德华
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:183
专家分:536
注 册:2011-5-29
收藏
得分:0 
写的不错啊!楼主肯定下了苦功夫的啊,

算法,数据结构,windows核心编程.
2011-06-19 13:59
lianjiecuowu
Rank: 3Rank: 3
来 自:安徽
等 级:论坛游侠
帖 子:152
专家分:107
注 册:2011-5-20
收藏
得分:0 
回复 9楼 爱德华
谢谢,嘿嘿

Sharp your mind!
2011-06-19 15:56
快速回复:两种方式选择排序,see see~~~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013328 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved