题目描述
给定一个长度为n的数组a和一个整数size,请你编写一个函数,void reverse(int a[], int size),实现将数组a中的前size个数翻转。
输出翻转后的数组a。
输入格式
第一行包含两个整数n和size。
第二行包含n个整数,表示数组a。
输出格式
共一行,包含n个整数,表示翻转后的数组a。
数据范围
1≤size≤n≤1000
输入样例
5 3
1 2 3 4 5
输出样例
3 2 1 4 5
刚开始的思路:
#include<iostream>
using namespace std;
void reverse(int a[],int size)
{
int num;
for(int i=0;i<=(size-1)/2;++i)
{
num=a[i];a[i]=a[size-1-i];a[size-1-i]=num;
}
}
int main()
{
int n,size;
int a[1000];
cin>>n>>size;
for(int i=0;i<n;++i)
cin>>a[i];
reverse(a,size);
for(int i=0;i<n;++i)
cout<<a[i]<<" ";
return 0;
}
简单代码:
#include<iostream>
using namespace std;
void reverse(int a[],int size)
{
for(int i=0,j=size-1;i<j;++i,--j)
swap(a[i],a[j]);
}
int main()
{
int n,size;
int a[1000];
cin>>n>>size;
for(int i=0;i<n;++i)
cin>>a[i];
reverse(a,size);
for(int i=0;i<n;++i)
cout<<a[i]<<" ";
return 0;
}