C++数组排序问题,帮我看下哪个地方出错了
#include <string>
#include <iostream>
#include <vector>
using namespace std;
void display(vector<int> vec)
{
for(int i = 0; i < vec.size(); ++i)
{
cout<<vec[i]<<endl;
}
}
void swap(int &val1,int &val2)
{
int temp = val1;
val1 = val2;
val2 = temp;
}
void sort(vector<int> &vec)
{
for(int ix = 0;ix < vec.size();++ix)
{
for(int iy = 1;iy < vec.size();++iy)
{
if(vec[ix]>vec[iy])
{
swap(vec[ix],vec[iy]);
}
}
}
}
int main()
{
int array1[10] = {7,19,22,3,99,77,15,18,2,58};
sort(array1);
display(array1);
}
[解决办法]
[code=C/C++][/code]
#include <iostream>
#include <vector>
#include <string>
using namespace std;
void display(vector<int> vec)
{
for(int i = 0; i < vec.size(); ++i)
cout<<vec[i]<<endl;
}
void cal_swap(int &val1,int &val2)
{
int temp = val1;
val1 = val2;
val2 = temp;
}
void cal_sort(vector<int> &vec)
{
for(int ix = 0;ix < vec.size(); ++ix)
for(int iy = ix; iy < vec.size(); ++iy)
if(vec[ix]>vec[iy])
cal_swap(vec[ix],vec[iy]);
}
int main()
{
int array1[10] = {7,19,22,3,99,77,15,18,2,58};
int i;
vector<int> vec;
vec.clear();
for(i = 0; i < 10; i ++)
vec.push_back(array1[i]);
cal_sort(vec);
display(vec);
return 0;
}
[解决办法]
在主函数中改一下:
int main(){ int array1[10] = {7,19,22,3,99,77,15,18,2,58}; vector<int> vec; for(int i = 0; i < 10; i++) { vec.push_back(array1[i]); } sort(vec); display(vec); return 0;}