我希望下面的代码能够按升序或降序打印数字,但是当我给出cout
语句时,我得到的是同一个数组。我无法弄清楚我犯错误的地方(而且我正在使用这种方法,因为学校需要这个程序而且我不希望任何功能为我做这个)
#include<iostream>
#include<algorithm> //<utility> for C++11
using namespace std;
int main()
{
int array[5] = { 1,4,6,9,5 };
for (int i = 0; i<5; i++)
{
for (int j = 0; j<5; j++)
{
if (array[i]<array[j])
{
swap(array[i], array[j]);
}
}
}
for (int k = 0; k<5; k++)
cout << array[k] << " ";
return 0;
}
答案 0 :(得分:1)
我认为第4行应该是:
for (int j = i + 1; j < 5; j++)
此外,交换函数需要通过引用传递:
void swap(int &a, int &b)
{
int temp = a;
a = b;
b = a;
}