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

2025-05-18 08:28:24
推荐回答(1个)
回答(1):

#include

// 逆置数组元素
void inverse(int *p,int size){
for (int i = 0; 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));
}