方法1:
void input(int *p, int len)
{
int *start = p;
int *end = p + len - 1;
int temp;
while(start < end)
{
temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
#include <stdio.h>
int main()
{
int arr[] = {11,22,33,44,55,66,77,88,99};
int len = sizeof(arr) / sizeof(arr[0]);
printf("原数组: ");
for (int i = 0; i < len; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
input(arr,len);
printf("反转后: ");
for(int i = 0; i < len; i++)
{
printf("%d ",*(arr + i));
}
return 0;
}
#include <stdio.h>
方法2:
void reverseToNewArray(const int *src, int *dest, const int len)
{
const int *start = src;
const int *end = src + len - 1;
int *destPtr = dest;
while (end >= start)
{
*destPtr = *end;
destPtr++;
end--;
}
}
int main()
{
int arr[] = {11, 22, 33, 44, 55, 66, 77, 88, 99};
const int len = sizeof(arr) / sizeof(arr[0]);
int reversedArr[len];
printf("原数组: ");
for (int i = 0; i < len; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
reverseToNewArray(arr, reversedArr, len);
printf("反转后: ");
for (int i = 0; i < len; i++)
{
printf("%d ", reversedArr[i]);
}
printf("\n");
return 0;
}
方法3: 直接反向遍历原数组
#include <stdio.h>
int main() {
int arr[] = {11, 22, 33, 44, 55, 66, 77, 88, 99};
const int len = sizeof(arr) / sizeof(arr[0]);
printf("原数组: ");
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
printf("反向输出: ");
for (int i = len - 1; i >= 0; i--)
{
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
