| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 364 人关注过本帖
标题:[求助]用冒泡法对数组进行排序,排序后的数组元素却被更改
只看楼主 加入收藏
孑囚
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-3-17
收藏
 问题点数:0 回复次数:5 
[求助]用冒泡法对数组进行排序,排序后的数组元素却被更改

程序如下:
void BubbleSort(int arry[],int size);
void Print(const int arry[],int size);

int main()
{
//int i;
const int size=18;
int arry[size]={1,3,5,65,1,2,4,5,1,6,24,2,5,6,7,2,3,9};

cout<<"原数组:\n";
Print(arry,size);

cout<<"\n排序后的数组为:\n";
BubbleSort(arry,size);
Print(arry,size);

cout<<endl;

return 0;
}

void BubbleSort(int arry[],int size)
{
int i,j,
temp;

for(i=1;i<size;i++)
for(j=0;j<size-1;j++)
if(arry[j]>arry[j+1])
{
temp=arry[j];
arry[j]=arry[j+1];
arry[j+1]=arry[j];
}
}

void Print(const int arry[],int size)
{
for(int i=0;i<size;i++)
cout<<arry[i]<<' ';
}


小弟不知道为什么运行的结果会是这样:


原数组:
1 3 5 65 1 2 4 5 1 6 24 2 5 6 7 2 3 9
排序后的数组为:
1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 3 9


请高手帮帮忙,小弟先谢了!!

2007-10-13 15:45
孑囚
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-3-17
收藏
得分:0 

没人知道吗???

2007-10-13 17:13
shinjikun
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-10-13
收藏
得分:0 
temp=arry[j];
arry[j]=arry[j+1];
arry[j+1]=arry[j];
改成
temp=arry[j];
arry[j]=arry[j+1];
arry[j+1]=temp;
2007-10-13 17:16
rareliu
Rank: 2
等 级:论坛游民
帖 子:44
专家分:28
注 册:2007-10-13
收藏
得分:0 

void BubbleSort(int arry[],int size)
{
int i,j,
temp;

for(i=1;i<size;i++)
for(j=0;j<size;j++)
if(arry[i]>arry[j])
{
temp=arry[i];
arry[i]=arry[j];
arry[j]=temp }
}


2007-10-13 18:00
孑囚
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-3-17
收藏
得分:0 
.........晕死了~~~~
谢谢啦...
2007-10-13 18:50
xskowscut
Rank: 1
等 级:新手上路
帖 子:81
专家分:0
注 册:2007-10-13
收藏
得分:0 
for循环里面最后一句错了啊。。。应该将temp的值赋给它

希望能够跟大家学习!交流编程经验!
2007-10-13 19:18
快速回复:[求助]用冒泡法对数组进行排序,排序后的数组元素却被更改
数据加载中...
 
   



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

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