用C/C++实现数组逆序
题目:给定有个数组,请将它逆序排序,然后返回。
例:
input:{1,3,5}
output:{5,3,1}
C语言方法
使用C语言实现时,数组需要用
int a[3];
的形式定义。
代码如下:
//数组取反
#include <stdio.h>
#include <vector>
#define len 5
int main(int argc, char* argv[])
{
//方法1 C语言数组
int a[len] = {0, 1, 2, 3, 4};
int temp_num;
for(int i = 0; i < len / 2; ++i)
{
temp_num = a[i];
a[i] = a[len - 1 - i];
a[len -1 -i] = temp_num;
}
for(int j : a)
{
printf("j is %d\n", j);
}
return 0;
}
C++语言方法
使用C++时,可以直接使用vector来做,代码如下:
//数组取反
#include <stdio.h>
#include <vector>
#define len 5
int main(int argc, char* argv[])
{
//方法2 C++ vector 用reverse_iterator迭代器
std::vector<int> v_a = {0,1,2};
std::vector<int> v_b ={};
for(std::vector<int>::reverse_iterator iter = v_a.rbegin(); iter != v_a.rend(); ++iter)
{
v_b.push_back(*iter);
}
//方法3 C++ vector 用下标
// for(int i = v_a.size(); i != 0; --i)
// {
// v_b.push_back(v_a[i - 1]);
// }
for(auto iter : v_b)
{
printf("v_b has %d\n", iter);
}
return 0;
}