将数组a中N个整数按相反的顺序存放。 采用指针变量。

将数组a中N个整数按相反的顺序存放。
采用指针变量。程序加一些解释。

#include<stdio.h>

// 逆置数组元素
void inverse(int *p,int size){
for (int i = 0; i<size;++i){
int k = size - i - 1;
if (k<= size / 2) break; // n个元素的数组只需匹配对n/2
int temp = *(p + i);     // 开始头尾对调
*(p + i) = *(p + k);
*(p + k) = temp;
}
}

void print(int *p, int size){
for (int i = 0; i < size; ++i) printf("%d ", *(p + i));
printf("\n");
}

void main(void)
{
int numbers[] = { 1, 2, 3, 4, 5 };
printf("%s","逆转前:");
print(numbers, sizeof(numbers) / sizeof(int));

printf("%s", "逆转后:");
inverse(numbers, sizeof(numbers) / sizeof(int));
print(numbers, sizeof(numbers) / sizeof(int));
}

温馨提示:答案为网友推荐,仅供参考
相似回答