标题:冒泡法的疑惑
只看楼主
zhangzhongxu
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2008-7-20
 问题点数:0 回复次数:7 
冒泡法的疑惑
用冒泡法对6个数排序(由小到大)
#include <stdio.h>
void main()
{ int i,j,t,a[6];
printf("enter the number:");
scanf("%d",&a[i]);
for(i=0;i<5;i++)
for(j=0;j<5-i;j++)
if(a[j]>a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
printf("%d\t",a[j]);
}
输出结果总是为1246,请教高手这是怎么回事?
搜索更多相关主题的帖子: 冒泡 
2008-08-01 21:45
很远的那颗星
Rank: 2
等 级:新手上路
威 望:4
帖 子:544
专家分:0
注 册:2008-6-30
得分:0 
scanf("%d",&a[i]);
怎么可以这样子初始化数组...

Fighting~~~~~~~~
2008-08-01 21:57
blueboy82006
Rank: 5Rank: 5
来 自:幻想世界
等 级:贵宾
威 望:16
帖 子:1227
专家分:57
注 册:2007-7-23
得分:0 
scanf("%d",&a[i]);//???
你少写个for循环吧

2008-08-01 21:58
blueboy82006
Rank: 5Rank: 5
来 自:幻想世界
等 级:贵宾
威 望:16
帖 子:1227
专家分:57
注 册:2007-7-23
得分:0 
输出时也不对吧?

2008-08-01 22:01
blueboy82006
Rank: 5Rank: 5
来 自:幻想世界
等 级:贵宾
威 望:16
帖 子:1227
专家分:57
注 册:2007-7-23
得分:0 
算法没问题!
改一下就好。。。
#include <stdio.h>
void main()
{
    int i,j,t,a[6];
    printf("enter the number:");
    for(i=0;i<6;i++)
        scanf("%d",&a[i]);
    for(i=0;i<5;i++)
        for(j=0;j<5-i;j++)
            if(a[j]>a[j+1])
            {t=a[j];a[j]=a[j+1];a[j+1]=t;}
    for(i=0;i<6;i++)
        printf("%d\t",a[i]);
}

2008-08-01 22:03
很远的那颗星
Rank: 2
等 级:新手上路
威 望:4
帖 子:544
专家分:0
注 册:2008-6-30
得分:0 
//彻底一点
#include <stdio.h>
int main(void)
{
    int i,j,t,a[6];
    printf("enter the number:");
    for (i=0;i<6;i++)
        scanf("%d",&a[i]);
    for (i=0;i<5;i++)
        for (j=0;j<5-i;j++)
            if (a[j]>a[j+1]) {t=a[j]; a[j]=a[j+1]; a[j+1]=t;}
    for (i=0;i<6;i++)
        printf("%d\t",a[i]);
    return 0;
}

Fighting~~~~~~~~
2008-08-01 22:32
netstriker
Rank: 1
等 级:新手上路
威 望:1
帖 子:257
专家分:0
注 册:2007-3-24
得分:0 
还没有初始化完数组a ,我运行的时候是出错的,或者参考一下我改的程序,
#include <stdio.h>

void main()
{    
    int i,j,t,a[6];
    for(i=0;i<6;i++)
    {
        printf("print %d Num:",i+1);
        scanf("%d",&a[i]);
        printf("\n");
    }
    t=5;
    for(i=0;t!=0;++i)
    {
        if(i==t)
        {
            --t;
            i=0;
        }
        if(a[i]>a[i+1])
        {
            int temp = a[i];
            a[i] = a[i+1];
            a[i+1] = temp;
        }

    }
    for(j=0;j<6;j++)
    {
        printf("%d\t \n",a[j]);
    }
}
2008-08-01 22:54
飞扬冲天
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:86
专家分:122
注 册:2011-10-21
得分:0 
初始化数组不对,,,
2011-10-29 22:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-226389-1-1.html




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

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