冒泡排序的值的输出的一些问题

qq_19753477 2014-08-29 02:33:23
#include<iostream>
using namespace std;
int main()
{
int a[10],i;
cout<<"plesae input 10 numbers:"<<endl;
for(i=0;i<10;i++)
cin>>a[i];
int j,s;
for(i=0;i<9;i++) //冒泡排序过程
for(j=0;j<9-i;j++)
{
if(a[i]>a[i+1])
s=a[i];
a[i]=a[i+1];
a[i+1]=s;
}

cout<<"the result is:"<<endl;
if(a[0]=a[1]) //假如第一个数和第二个数相等
{
cout<<a[1]; //输出第二个数
for(i=2;i<10;i++) //输出剩下的数
{
if(a[i]!=a[i-1]) //重复的数不输出
cout<<" "<<a[i];
}
goto o; //程序跳至结束部分
}
else
{
cout<<a[0]<<" "<<a[1]; //假如第一个数和第二个数不相等,输出第一个数和第二个数。不存在1,2,1类似的情况,因为已经冒泡排序
for(i=2;i<10;i++)
{
if(a[i]!=a[i-1])
cout<<" "<<a[i];
}
}


o: cout<<endl;
system("pause");
return 0;
}
这段代码是冒泡排序,输出数据的时候重复的数只输出一次。请教大家。谢谢!
...全文
1749 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ws_stu 2016-12-27
  • 打赏
  • 举报
回复
书上例子很多啊!
qinlj0 2016-11-09
  • 打赏
  • 举报
回复
排序建议用QSort,即在序列中搜索最小值,然后和第一个元素Swap;迭代即可。
qq_36636499 2016-11-07
  • 打赏
  • 举报
回复
for(i=0;i<9;i++) //冒泡排序过程
for(j=0;j<9-i;j++)
可以详细的解释一下这是什么意思吗 谢谢了
cddchina 2014-09-03
  • 打赏
  • 举报
回复
你在判断两个数相等的时候 应该用 == ,而不是=

552

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 茶馆
社区管理员
  • 茶馆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧