第一种方法,采用数组下标的方式,调用函数完成逆序输出字符串
#include<stdio.h>
#include<stdlib.h>
void Reverse(int arr[], int sz)
{
int tmp = 0;
int left = 0;
int right = sz - 1;
while (left < right)
{
tmp = arr[left];
arr[left] = arr[right];
arr[right] = tmp;
left++;
right--;
}
}
void Show(int arr[],int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
int main()
{
int arr[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int i = 0;
int sz = sizeof(arr) / sizeof(arr[0]);
Show(arr,sz);
Reverse(arr, sz);
Show(arr,sz);
system("pause");
return 0;
}
第二种,采用指针,逆序输出字符串
方式一:
#include<stdio.h>
#include<stdlib.h>
void Reverse(int *arr, int sz)
{
int tmp = 0;
int left = 0;
int right = sz - 1;
while (left < right)
{
tmp = *(arr+left);
*(arr + left) = *(arr + right);
*(arr + right) = tmp;
left++;
right--;
}
}
void Show(int arr[], int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
int main()
{
int arr[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int i = 0;;
int sz = sizeof(arr) / sizeof(arr[0]);
Show(arr, sz);
Reverse(arr, sz);
Show(arr, sz);
system("pause");
return 0;
}
方式二:
#include<stdio.h>
#include<stdlib.h>
void Reverse(int *left, int *right)
{
int tmp = 0;
while (left < right)
{
tmp = *left;
*left = *right;
*right = tmp;
left++;
right--;
}
}
void Show(int arr[], int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
int main()
{
int arr[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int sz = sizeof(arr) / sizeof(arr[0]);
int i = 0;
Show(arr, sz);
Reverse(arr, arr + sz - 1);
Show(arr, sz);
system("pause");
return 0;
}