将一个数组中的数据按相反的顺序存储(将数组中的数据逆序输出)

来源:互联网 发布:mac最新系统下载地址 编辑:程序博客网 时间:2024/05/22 04:29

第一种方法,采用数组下标的方式,调用函数完成逆序输出字符串

#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;}
阅读全文
0 0
原创粉丝点击