【发布时间】:2015-06-27 22:16:17
【问题描述】:
我正在尝试进行冒泡排序。这是我所拥有的:
#include <iostream>
#include <vector>
using namespace std;
int main() {
double small;
double big;
double i;
vector<double>list;
while(cin){
cin>>i;
list.push_back(i);
}
for(i=0;i<list.size()-1;i++){
small=list[i];
big=list[i+1];
if(small<=big){
}
else{
list[i]=big;
list[i+1]=small;
}
}
for(i=0;i<list.size()-1;i++)
cout<<list[i]<<'\n';
return 0;
}
这是我的意见:
123
4141
515
231366
21378
12990
5
6
8
9
但它会输出这个:
123
515
4141
21378
12990
5
6
8
9
9
231366
预期的输出应该是:5,6,8,9,123,515,4141,12990,21378,231366。(忽略这个,我很笨,除了重复的数字外,输出是正确的)。有什么帮助吗?对不起,如果这是微不足道的。
【问题讨论】:
-
你期望什么输出?
-
这不清楚。你期待什么输出?
-
如果“只经历一次”是指一次迭代,那么你的输出是正确的(但我认为你在那里写了两次
9)。如果你的意思是别的,请解释清楚。
标签: c++