| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 9485 人关注过本帖
标题:C++输入10个数然后从小到大的顺序输出冒泡法for循环执行算法
只看楼主 加入收藏
文龙
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-4-23
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
C++输入10个数然后从小到大的顺序输出冒泡法for循环执行算法
for(i=0;i<10;i++)
   {k=i;
       for(j=i+1;j<10;j++)
        if(array[k]>array[j]) k=j;  //使k始终作为最小数的下标,也就是使array[k]始终代表最小数
       if(k!=i)
   {temp=array[i];
    array[i]=array[k];
    array[k]=temp;
   }
   }
搜索更多相关主题的帖子: 算法 
2012-04-23 23:58
ab1034982749
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:215
专家分:1185
注 册:2012-4-14
收藏
得分:20 
这个好像是选择排序法而不是冒泡排序法
这个才是冒泡排序:
for(i=1;i<10;i++)
    for(k=0;k<10-i;k++)
        if(a[k]>a[k+1])
        {
            temp=a[k];
            a[k]=a[k+1];
            a[k+1]=temp;
        }
2012-04-24 22:06
文龙
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-4-23
收藏
得分:0 
C++输入10个数然后从小到大的顺序输出选择法for循环执行算法
for(i=0;i<10;i++)
    {k=i;
        for(j=i+1;j<10;j++)
         if(array[k]>array[j]) k=j;  //使k始终作为最小数的下标,也就是使array[k]始终代表最小数
    {temp=array[k];
     array[k]=array[i];
     array[i]=temp;
    }
    }
这个选择法for循环对吗
2012-04-26 12:54
ab1034982749
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:215
专家分:1185
注 册:2012-4-14
收藏
得分:0 
对的,
2012-04-26 14:04
gyfabc
Rank: 1
等 级:新手上路
帖 子:16
专家分:5
注 册:2012-4-20
收藏
得分:0 
看看我这个经过优化的。。。
#include<iostream>
using namespace std;
int main()
{
 int i,t,k=0,n,j,str[10];
 cout<<"本程序用冒泡法对10个数排列大小:"<<endl<<"请输入10个数:";
 for(i=0;i<10;i++)
     cin>>str[i];

for(i=0;i<10;i++)
{  n=0;
    {for(j=0;j<9;j++)
         {if(str[j]<str[j+1])
             {t=str[j];
             str[j]=str[j+1];
             str[j+1]=t;n++;}   
         }
        if(n==0)
            break;
    }  
}

cout<<"从大到小顺序:";
for(i=0;i<10;i++)
  cout<<str[i]<<" ";
  cout<<endl;
      
return 0;
}
2012-04-30 19:18
nongzhaobo
Rank: 3Rank: 3
来 自:广西南宁
等 级:论坛游侠
帖 子:59
专家分:155
注 册:2012-4-8
收藏
得分:0 
貌似是作业的?
2012-05-08 10:37
maoenlong
Rank: 2
等 级:论坛游民
帖 子:10
专家分:15
注 册:2012-6-14
收藏
得分:0 
#include <iostream.h>
class CSample
{ private:
 int i;
 static int k;
 public:
 CSample();
 void Display();
};
CSample::CSample()
{ 
 i=0;
 k++;
}
void CSample::Display()
{
 Cout<<”i=”<<i<<”,k=”<<k<<endl;
}
int CSample::k=0;
void main()
{ CSample a,b;
 a.Display();
 b.Display();
}
答: i=0,k=2
  i=0,k=2
为什么k值是2,我看了半天就认为k是1,求解释,求帮忙
2012-06-17 12:04
遗LOVE忘
Rank: 2
等 级:论坛游民
帖 子:9
专家分:11
注 册:2012-6-15
收藏
得分:0 
回复 7楼 maoenlong
定义两个对象的时候已经调用了2次构造函数,那么K自然而然就自加了2次了,那就是2 咯
2012-06-19 11:21
maoenlong
Rank: 2
等 级:论坛游民
帖 子:10
专家分:15
注 册:2012-6-14
收藏
得分:0 
非常感谢
2012-06-19 14:26
快速回复:C++输入10个数然后从小到大的顺序输出冒泡法for循环执行算法
数据加载中...
 
   



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

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