1 题目
将一个数组逆序输出。
2 分析
逆置一个数组采用的方法就是两两交换,第一个与最后一个交换,第二个与倒数第二个交换,依次类推,需要注意的是交换的次数为数组长度的一般,因为在交换一半的时候后一半也被交换了,如果交换的次数为数组的长度,那么数组又被还原了。
3 实现
#include <stdio.h>
void invertArr(int A[], int n)
{
//交换的时候,要循环数组长度的二分之一次
for(int i = 0; i < n/2; i++) {
int t = A[i];
A[i] = A[n-i-1];
A[n-i-1] = t;
}
}
int main(void)
{
int A[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
printf("原数组为:");
for (int i = 0; i < 10; i++) {
printf("%d ", A[i]);
}
invertArr(A, 10);
printf("\n逆置后为:");
for (int i = 0; i < 10; i++) {
printf("%d ", A[i]);
}
return 0;
}
4 运行结果
原数组为:0 1 2 3 4 5 6 7 8 9
逆置后为:9 8 7 6 5 4 3 2 1 0