| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 683 人关注过本帖
标题:数组冒泡排序出错了,求解释谢谢
只看楼主 加入收藏
我就是我和你
Rank: 1
等 级:新手上路
帖 子:20
专家分:2
注 册:2013-4-4
结帖率:83.33%
收藏
已结贴  问题点数:15 回复次数:9 
数组冒泡排序出错了,求解释谢谢
//数组的顺序(降序排序)模块//////
#include<stdio.h>
#define n 100

main()
{
    int a[n];
    int i,j,t;
    int k;

    printf("请输入数组大小:");
    scanf("%d",&k);

    for(i=0;i<k;i++)
    {
    printf("请输入a[%d]元素的值:",i);
    scanf("%d",&a);
    }

    for(i=0;i<k;i++)
    {
        for(j=0;j<=k-i-1;j++)

        {
            if(a[j]<a[j+1])

            {
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
            }
        }

    }

    printf("降序排序后的顺序为:\n");
    for(i=0;i<k;i++)
    {
        printf("%d ",a[i]);
    }
}
搜索更多相关主题的帖子: include 
2013-05-10 09:06
helloUJS
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:168
专家分:731
注 册:2013-3-27
收藏
得分:3 
(1)scanf("%d",&a);错了,改为scanf("%d",&a[i]);
(2)if(a[j]<a[j+1])错误,改为if(a[j]>a[j+1])
看错了,当成升序排列了

[ 本帖最后由 helloUJS 于 2013-5-10 12:38 编辑 ]
2013-05-10 10:00
dishitian
Rank: 1
等 级:禁止发言
帖 子:9
专家分:4
注 册:2013-4-3
收藏
得分:3 
提示: 作者被禁止或删除 内容自动屏蔽
2013-05-10 10:29
小小玉
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:47
专家分:156
注 册:2013-4-13
收藏
得分:3 
#include<stdio.h>
 #define n 100

 main()
 {
     int a[n];
     int i,j,t;
     int k;

     printf("请输入数组大小:");
     scanf("%d",&k);

     for(i=0;i<k;i++)
     {
     printf("请输入a[%d]元素的值:",i);
     scanf("%d",&a[i]);
     }

     for(i=0;i<k;i++)
     {
         for(j=0;j<k-i-1;j++)

         {
             if(a[j]<a[j+1])

             {
                 t=a[j];
                 a[j]=a[j+1];
                 a[j+1]=t;
             }
         }

     }

     printf("降序排序后的顺序为:\n");
     for(i=0;i<k;i++)
     {
         printf("%d ",a[i]);
     }
 }
2013-05-10 11:08
abc594986308
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:168
专家分:116
注 册:2013-3-18
收藏
得分:3 
四楼正解
2013-05-10 12:12
helloUJS
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:168
专家分:731
注 册:2013-3-27
收藏
得分:0 
#include<stdio.h>
#define n 100
main()
{
    int a[n];
    int i,j,t;
    int k;

    printf("请输入数组大小:");
    scanf("%d",&k);

    for(i=0;i<k;i++)
    {
    printf("请输入a[%d]元素的值:",i);
    scanf("%d",&a[i]);
    }
    for(i=0;i<k-1;i++)   /*稍微不同的思路*/
    {
        for(j=i+1;j<k;j++) /*将a[i]~a[k-1]中的最大数放到a[i]中*/

        {
            if(a[i]<a[j])

            {
                t=a[j];
                a[j]=a[i];
                a[i]=t;
            }
        }
    }
    printf("降序排序后的顺序为:\n");
    for(i=0;i<k;i++)
    {
        printf("%d ",a[i]);
    }
}
2013-05-10 12:46
yyqd2013
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:35
专家分:154
注 册:2013-5-8
收藏
得分:3 
测试通过:
//数组的顺序(降序排序)模块//////
#include<stdio.h>
#define n 100

main()
{
    int a[n];
    int i,j,t;
    int k;

    printf("请输入数组大小:");
    scanf("%d",&k);

    for(i=0;i<k;i++)
    {
    printf("请输入a[%d]元素的值:",i);
    scanf(" %d",&a[i]);
    }

    printf("降序排序前的顺序为:\n");
    for(i=0;i<k;i++)
    {
        printf("%d \n",a[i]);
    }


    for(i=0; i<k-1;i++)
    {
        for(j=k-2; j>=i; j--)

        {
            if(a[j]<a[j+1])

            {
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
            }
        }

    }

    printf("降序排序后的顺序为:\n");
    for(i=0;i<k;i++)
    {
        printf("%d \n",a[i]);
    }
}
2013-05-10 17:05
我就是我和你
Rank: 1
等 级:新手上路
帖 子:20
专家分:2
注 册:2013-4-4
收藏
得分:0 
谢谢

study day day,up up!
2013-05-11 01:35
我就是我和你
Rank: 1
等 级:新手上路
帖 子:20
专家分:2
注 册:2013-4-4
收藏
得分:0 
回复 6楼 helloUJS
从注释那儿,开始看不懂了,求大神解释.

study day day,up up!
2013-05-11 01:56
我就是我和你
Rank: 1
等 级:新手上路
帖 子:20
专家分:2
注 册:2013-4-4
收藏
得分:0 
回复 6楼 helloUJS
是选择排序法吗?

study day day,up up!
2013-05-11 01:58
快速回复:数组冒泡排序出错了,求解释谢谢
数据加载中...
 
   



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

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