| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 575 人关注过本帖
标题:诚心发问,关于冒泡法的应用,感谢大家!
只看楼主 加入收藏
AntorDragon
Rank: 2
等 级:论坛游民
帖 子:45
专家分:12
注 册:2013-3-3
结帖率:86.67%
收藏
已结贴  问题点数:20 回复次数:5 
诚心发问,关于冒泡法的应用,感谢大家!
我的想法是通过冒泡法将数组整个移上去。
   2 4 3 1 10     (每一行第五列的数是每一行前四列数之和,也是用来比较大小的对象)
     2 3 4 5 14
     3 4 5 6 18
     5 3 2 5 15
     1 1 1 1 5
     2 2 2 2 8
我想把它变成:
     3 4 5 6 18
     5 3 2 5 15
     2 3 4 5 14
     2 4 3 1 10
     2 2 2 2 8
     1 1 1 1 5
下面是我通过数组循环,用冒泡的思想想把这个变换实现,只有部分,就是我编的冒泡循环,但发现完全没用,不知道为什么,求大神解释。
 for(i=5;i<0;i--)
     { for(j=0;j<i-1;j++)
        {
         if(a[i][4]>a[i-1][4])
           {
                 for(k=0;k<4;k++)
               {
                  temp=a[i][k];
                  a[i][k]=a[i-1][k];
                  a[i-1][k]=temp;
           }
            }
        }
      }
搜索更多相关主题的帖子: 小吃培训 
2013-06-05 23:15
蚕头燕尾
Rank: 10Rank: 10Rank: 10
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:734
专家分:1546
注 册:2013-3-24
收藏
得分:0 
问题最好描述的具体一点,完全没有用是什么意思?不能实现功能还是根本对数组没任何影响?

全部代码都贴出来吧,方便大家帮你找错,有时候感觉头痛医头脚痛医脚是不行的。


学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。               

                                                                                                                    Black Cat      Hello Tomorrow~
2013-06-05 23:48
Explorerlxz
Rank: 9Rank: 9Rank: 9
来 自:zzu
等 级:蜘蛛侠
威 望:4
帖 子:302
专家分:1032
注 册:2013-4-24
收藏
得分:10 
//楼主for循环错误太多了,最好多看看书,先学会一维的排序再学这个也不迟
//下面是我写的一个程序,我觉得楼主太粗心了1+1+1+1=5?
#include<stdio.h>
int main()
{
    int i,j,k,m,b[5],a[5][5]={{2,4,3,1,10},{2,3,4,5,14},{3,4,5,6,18},{1,1,1,1,5},{2,2,2,2,8}};
    for(i=0;i<5;i++)
    {
        for(k=0;k<5-i;k++)
        {
            if(a[k][4]<a[k+1][4])
            {
                for(m=0;m<5;m++)
                {
                    b[m]=a[k][m];
                    a[k][m]=a[k+1][m];
                    a[k+1][m]=b[m];
                }
            }
        }
    }
    for(i=0;i<5;i++)
    {
        for(j=0;j<5;j++)
            printf("%d\t",a[i][j]);
        printf("\n");
    }
    return 0;
}
2013-06-06 00:01
AntorDragon
Rank: 2
等 级:论坛游民
帖 子:45
专家分:12
注 册:2013-3-3
收藏
得分:0 
回复 2楼 蚕头燕尾
。。。。。。。。。好的

#include<stdio.h>
void main()
{
    float a[6][5],temp;
    int i,j,k;
    for(i=0;i<6;i++)
      for(j=0;j<4;j++)
        {
          scanf("%f",&a[i][j]);
        }
      for(i=0;i<6;i++)
      { a[i][4]=a[i][1]+a[i][2]+a[i][3]+a[i][0];}   
   for(i=5;i<0;i--)
     { for(j=0;j<i-1;j++)
        {
         if(a[i][4]>a[i-1][4])
           {
                 for(k=0;k<4;k++)
                 {
                  temp=a[i][k];
                  a[i][k]=a[i-1][k];
                  a[i-1][k]=temp;
                 }
            }
        }
      }
    for(i=0;i<6;i++)
    {
      {for(j=0;j<5;j++)
         {
          printf("%.2f",a[i][j]);
          }
          printf("\n");
      }
    }
}

那年京城大雪,或是天下大雪,我一骑绝尘
2013-06-06 00:02
Explorerlxz
Rank: 9Rank: 9Rank: 9
来 自:zzu
等 级:蜘蛛侠
威 望:4
帖 子:302
专家分:1032
注 册:2013-4-24
收藏
得分:0 
刚说完楼主,我发现我也少些一行,想要写好代码需要细心细心再细心啊!
2013-06-06 00:04
蚕头燕尾
Rank: 10Rank: 10Rank: 10
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:734
专家分:1546
注 册:2013-3-24
收藏
得分:10 
#include<stdio.h>
 void main()
 {
     float a[6][5],temp;
     int i,j,k=1;
     for(i=0;i<6;i++)
       for(j=0;j<4;j++)
         {
           //scanf("%f",&a[i][j]);
             a[i][j]=k;
             k++;
         }

     for(i=0;i<6;i++)
     {
         a[i][4]=a[i][1]+a[i][2]+a[i][3]+a[i][0];
     }   
    for(i=0;i<4;i++)
    {
          for(j=4;j>i;j--)
          {
            if(a[j-1][4]<a[j][4])
            {
                 for(k=0;k<5;k++)
                 {
                   temp=a[j][k];
                   a[j][k]=a[j-1][k];
                   a[j-1][k]=temp;
                 }
             }
         }
     }
     for(i=0;i<6;i++)
     {
       {
           for(j=0;j<5;j++)
           {
             printf("%5g ",a[i][j]);
           }
           printf("\n");
       }
     }
 }

为了简化调试过程,将数组初始化了,楼主自己稍微再改一下就ok了、、

学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。               

                                                                                                                    Black Cat      Hello Tomorrow~
2013-06-06 00:28
快速回复:诚心发问,关于冒泡法的应用,感谢大家!
数据加载中...
 
   



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

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