数据结构算法实现1

一维数组的倒置

#include<stdio.h>
#define M 20
/*
一维数组的倒置
数组a刚被调用时,调用的是数组的第一个数据,*a是可以直接代替数组a的,调用*a和调用数组a没多大的区别
*/
void fun(int *x,int n)
{
    int *p,m=n/2,*i,*j;
    i=x;
    j=x+n-1;
    p=x+m;
    for(;i<p;i++,j--)
    {
        int t=*i;
        *i=*j;
        *j=t;
    }
}
void main()
{
    int i,a[M],n;
    printf("Enter n:\n");
    scanf("%d",&n);
    printf("The original array:\n");
    for(i=0;i<n;i++)
        scanf("%d",a+i);   //  a+i 就是数组a[i]
    fun(a,i);    //数组名a代表该数组首地址, 与&a[0]作用相同,*a即a[0]
    printf("\nThe array inverted:\n");
    for(i=0;i<n;i++)
        printf("%d  ",*(a+i));
}


你可能感兴趣的:(include)