| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 251 人关注过本帖
标题:关于排序问题
只看楼主 加入收藏
a99875984
Rank: 2
等 级:论坛游民
帖 子:188
专家分:24
注 册:2012-2-11
结帖率:94.64%
收藏
已结贴  问题点数:13 回复次数:4 
关于排序问题
程序代码:
#include <iostream.h>
#include <iomanip.h>
#include <stdio.h>
int main()
{
    int a[3],i,j;
    for(i=0;i<3;i++)
        cin>>a[i];
    for(i=0;i<3;i++)
        if(a[i+1]<a[i])
    {
   
        j=a[i];
        a[i]=a[i+1];
        a[i+1]=j;
    }
    for(i=0;i<3;i++)
        cout<<setw(3)<<a[i];
    return 0;
}请问,问什么输入3 2 1.输出是2 1 3
输入2 1 3时,输出是1 2 3?这是什么情况啊?谢谢了哈
搜索更多相关主题的帖子: 问题 
2012-04-16 23:21
ab1034982749
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:215
专家分:1185
注 册:2012-4-14
收藏
得分:13 
首先可以看出你用的是冒泡排序法,既然是冒泡排序法就应该在排序时使用两个循环语句,但是由于你只使用了一个循环语句,导致你只是把最大的数放到了最底下,而其它的则是无序的,所以说当你输入321时由于3最大所以沉到了最低下(就是放在最后),而当你输入213时由于2没有3大所以沉到了倒数第二位,所以说只要把你的循环语句修改一下,首先应该再定义一个变量int k.修改代码如下:
for(i=0:i<2:i++)
    for(k=0:k<2-i:k++)
        if(a[k+1]<a[k])
          { j=a[k+1]:
            a[k+1]=a[k]:
            a[k]=j;
          }
2012-04-17 00:23
a99875984
Rank: 2
等 级:论坛游民
帖 子:188
专家分:24
注 册:2012-2-11
收藏
得分:0 
回复 2楼 ab1034982749
谢谢了,把这点给忘了。
我同学帮我改了下,结果当时一重循环就解决了,后来我问他,结果他说他也是乱改的,当时没注意是一重循环,请问下一重循环怎么解决排序问题啊?

[ 本帖最后由 a99875984 于 2012-4-17 13:49 编辑 ]
2012-04-17 13:33
ab1034982749
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:215
专家分:1185
注 册:2012-4-14
收藏
得分:0 
一重循环好像不能够排序一组数,
不过可以选出一组数中的最大值和最小值,
所以还得用二重循环。
其中有冒泡排序和选择排序这两种常用。
2012-04-17 18:10
lyswwr
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:53
专家分:124
注 册:2011-7-3
收藏
得分:0 
同意二楼的
#include <iostream.h>
int main()
{
    int i,j,a[3]={3,2,1};
    //for(i=1;i<=3;i++)
     //   cin>>a[i];
        for(i=0;i<3;i++)
            for(j=0;j<2;j++)
            if(a[j+1]<a[j])
            {
            int temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
    for(i=0;i<3;i++)
        cout<<a[i];
    return 0;
}
2012-04-17 20:45
快速回复:关于排序问题
数据加载中...
 
   



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

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