| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 350 人关注过本帖
标题:冒泡排序问题
只看楼主 加入收藏
卡其
Rank: 2
等 级:论坛游民
帖 子:96
专家分:36
注 册:2010-8-30
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
冒泡排序问题
#include<stdio.h>
void main()
{
    int a[5] ;
    int i,j,t;
    printf("请输入5个数\n");
    for(i=0;i<5;i++)
        scanf("%d",&a[i]);
    for(i=0;i<5;i++)
    {
        for(j=1;j<5-i;j++)
            if(a[i]<a[i+1])
            {
                t=a[i];
                a[i]=a[i+1];
                a[i+1]=t;
            }
    }
    for(i=1;i<6;i++)
        printf("%d",a[i]);
}
这个错在哪里
2011-03-26 02:17
njkido
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:224
专家分:1184
注 册:2011-3-8
收藏
得分:3 
只冒了一次泡 把最小的数放最后了
另外for(i=0;i<5;i++)


[ 本帖最后由 njkido 于 2011-3-26 03:12 编辑 ]
2011-03-26 02:57
卡其
Rank: 2
等 级:论坛游民
帖 子:96
专家分:36
注 册:2010-8-30
收藏
得分:0 
回复 2楼 njkido
能给个正确的程序不
2011-03-26 04:15
pcbaichi
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:486
专家分:1185
注 册:2010-11-13
收藏
得分:3 
程序代码:
for(j=1;j<5-i;j++)
            if(a[i]<a[i+1])
            {
                t=a[i];
                a[i]=a[i+1];
                a[i+1]=t;
            }
这一部分你是怎么想的。
正确的:
for(j=0;j<5-i;j++)
    if(a[j]>a[j+1])
   {
        t=a[j];
        a[j]=a[j+1];
        a[i+1]=t;
    }
for(i=1;i<6;i++)
        printf("%d",a[i]);
最后的输出也越界了


[ 本帖最后由 pcbaichi 于 2011-3-26 09:08 编辑 ]

免费赠送河蟹一只
2011-03-26 08:46
给力芬2010
Rank: 2
等 级:论坛游民
帖 子:48
专家分:71
注 册:2011-3-17
收藏
得分:3 
#include<stdio.h>
void main()
{
    int a[5] ;
    int i,j,t;
    printf("请输入5个数\n");
    for(i=0;i<5;i++)
        scanf("%d",&a[i]);
    for(i=0;i<5;i++)
    {
        for(j=0;j<5;j++)
            if(a[i]<a[j])
            {
                t=a[i];
                a[i]=a[j];
                a[j]=t;
            }
            else
            continue;
    }
    for(i=0;i<5;i++)
        printf("%d\t",a[i]);
}
2011-03-26 09:00
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:3 
程序代码:

#include <stdio.h>

int main (void) {

        int i,j,temp,a[5];
        printf ("Enter 5 digit:\n");

//input
        for(i=0;i<5;i++) { scanf ("%i",&a[i]); }

//sort
        for(i=0;i<4;i++) {
                for(j=i+1;j<5;j++) {
                        if(a[i]>a[j]) {
                                temp=a[i];
                                a[i]=a[j];
                                a[j]=temp;
                        }
                }
        }

//display
        for(i=0;i<5;i++) { printf ("%i\n",a[i]); }

        return 0;

}


善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-03-26 09:37
安然之风
Rank: 2
等 级:论坛游民
帖 子:43
专家分:23
注 册:2011-1-6
收藏
得分:3 
将它改改就行了!
#include<stdio.h>
void main()
{
    int a[5] ;
    int i,j,t;
    printf("请输入5个数\n");
    for(i=0;i<5;i++)
        scanf("%d",&a[i]);
    for(i=0;i<5;i++)
    {
        for(j=i+1;j<5;j++)
            if(a[i]<a[j])
            {
                t=a[i];
                a[i]=a[j];
                a[j]=t;
            }
    }
    for(i=0;i<5;i++)
        printf("%d ",a[i]);
    printf("\n");
}
2011-03-26 15:49
帅的让人抽
Rank: 4
来 自:安徽
等 级:业余侠客
帖 子:94
专家分:224
注 册:2010-9-30
收藏
得分:3 

樱花下落的速度依然是秒速五厘米,即使发了一千次短信,
心与心之间也只能靠近一厘米……
2011-03-26 18:43
快速回复:冒泡排序问题
数据加载中...
 
   



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

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