首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++数组排序有关问题,帮小弟我看下哪个地方出错了

2012-02-10 
C++数组排序问题,帮我看下哪个地方出错了#include string#include iostream#include vectorusing na

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;
}
[解决办法]
在主函数中改一下:

C/C++ code
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;} 

热点排行