试题描述
编写函数invert,将数组中的n个整数按相反顺序存放,要求用指针变量作为函数形参,并用指针的方法遍历该数组。
在main函数中输入n个整数,存入数组a中;然后调用上述函数处理数组a,最后逐个输出数组a中的元素。
注意:不要改变函数名称,注意大小写敏感。
输入
输入包含两行:
第一行是n(1 <= n <= 1000)。
第二行是n个整数,邻近两数之间用一个空格隔开。
输出
输出逆序存放后的数组,邻近两数之间用一个空格隔开。
输入示例
5
15 20 4 7 -18
输出示例
-18 7 4 20 15
数据范围
输入和输出均为int范围的整数
#include <stdio.h>
int main(){
int i,a[1000],n;
scanf("%d",&n);
for(i=0;i<n;i++) scanf("%d",&a[i]);
invert(a,n);
for(i=0;i<n;i++) printf("%d ",a[i]);
}
int invert(int *arr,int n){
int i=0,*p1,a,*p2;
p1=arr;
p2=arr+n-1;
for(;p1<arr+n/2;p1++,p2--) {
a=*p1;
*p1=*p2;
*p2=a;
}
}
(学习尚少,仅供参考,若有不足,欢迎一起探讨。)