#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;
}
這段代碼是冒泡排序,輸出資料的時候重復的數只輸出一次。請教大家。謝謝!
uj5u.com熱心網友回復:
你在判斷兩個數相等的時候 應該用 == ,而不是=uj5u.com熱心網友回復:
for(i=0;i<9;i++) //冒泡排序程序for(j=0;j<9-i;j++)
可以詳細的解釋一下這是什么意思嗎 謝謝了
uj5u.com熱心網友回復:
排序建議用QSort,即在序列中搜索最小值,然后和第一個元素Swap;迭代即可。uj5u.com熱心網友回復:
書上例子很多啊!轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/66016.html
標籤:茶館
