#define N 20 fun(int a[],int n,int m) { int i; for(i=m;i>=n;

1个回答

  • 你 的 “return a[a+1];”这里有错误.貌似去掉那一行也行.

    你定义了容量为20的整形数组 a[20],初始化时后10个元素值为0,前10个元素值依次为1-10

    你调用了fun(int a[],int n,int m)函数,传入参数a的地址,2和9

    在fun函数里面

    当m大于n时数组元素向右移动位置.

    然后m自减,重新测试移位条件..也就是上一步操作了

    所以根据传入的参数可以知道

    把数组a从下标为9开始向右移位,一直到下标为1停止移位.

    fun()函数结束

    得到的移动过某些元素位置的数组a

    a[0]=1,

    a[1]=2,

    a[2]=3,

    a[3]=3,

    a[4]=4,

    a[5]=5,

    a[6]=6,

    a[7]=7,

    a[8]=8,

    a[9]=9,

    a[10]=10,

    a[11]=0,

    a[12]=0,

    ...

    a[19]=0,