将数组元素倒序输出——指针

一般我们求一个数组倒着输出,经常会采用下列方法

#include<stdio.h>
#include<stdlib.h>
void  instead (int x[],int n)
{
    int i,j,t;
    for(i=0,j=n-1;i<=j;i++,j--)
    {
          t=x[i];
          x[i]=x[j];
          x[j]=t;
    }
}
int main()
{
    int i,a[10]={0,1,2,3,4,5,6,7,8,9};
    instead(a,10);
    printf("The array has been reverted:\n");
    for(int i=0;i<10;i++)
    {
        printf("%d ",a[i]);
    }
    printf("\n");
}

但是当你学了指针之后,你就自己动手将他弄一下,试试行不行,巩固一下。

一、介绍第一种,现在开始showtime

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 void  instead (int *x,int n)//将数组a的首地址付到这
 4 {
 5     int *i,*j,*p,t,m=(n-1)/2;//i、j表示将要访问数组a中元素的地址并进行改变(倒置数组a)
 6     i=x;j=x+n-1;p=x+m;//将数组a的首地址和末位置给了i,j
 7     for(;i<=p;i++,j--)
 8     {
 9         t=*i;
10         *i=*j;
11         *j=t;
12     }
13 }
14 int main()
15 {
16     int i,a[10]={0,1,2,3,4,5,6,7,8,9};
17     instead(a,10);
18     printf("The array has been reverted:\n");
19     for(int i=0;i<10;i++)
20     {
21         printf("%d ",a[i]);
22     }
23     printf("\n");
24 }

二、再提供第二种

#include<stdio.h>
#include<stdlib.h>
void  instead (int *x,int n)
{
    int *i,*j,*p,t,m=(n-1)/2;
    i=x;j=x+n-1;p=x+m;
    for(;i<=p;i++,j--)
    {
        t=*i;
        *i=*j;
        *j=t;
    }
}
int main()
{
    int i,a[10],*p=a;//将数组a的地址存放到指针里,单独一个字母a表示数组a的地址。
    for(i=0;i<10;i++,p++)//将指针移动分别给数组a赋值。
    {
        scanf("%d",p);
    }
    p=a;//将p调回到a数组的首地址。
    instead(p,10);
    printf("The array has been reverted:\n");
    for(int i=0;i<10;i++)
    {
        printf("%d ",a[i]);
    }
    printf("\n");
}

三、再来第三种表示方式

#include<stdio.h>
#include<stdlib.h>
void  instead (int x[],int n)
{
    int i,j,m=(n-1)/2,t;
    for(i=0,j=n-1;i<=j;i++,j--)
    {
        t=x[i];
        x[i]=x[j];
        x[j]=t;
    }
}
int main()
{
    int i,a[10],*p=a;
    for(i=0;i<10;i++,p++)
    {
        scanf("%d",p);
    }
    p=a;//将p调回到a数组的首地址。
    instead(p,10);
    printf("The array has been reverted:\n");
    for(int i=0;i<10;i++)
    {
        printf("%d ",a[i]);
    }
    printf("\n");
}

这几个只是栗子,随便看看就行啦。

猜你喜欢

转载自www.cnblogs.com/zhuyukun/p/12520597.html