改错题   下列给定程序中,函数fun的功能是:给一维数组a输入任意4个整数,并按如下的规律输出。例如,输入1、2、3、4,程序运行后输出以下方阵:
    4  1  2  3
    3  4  1  2
    2  3  4  1
    1  2  3  4
    请改正程序中的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
    试题程序:
    #include<stdio.h>
    #define M 4
    /**********found**********/
    void fun(int a)
    {
    int i,j,k,m;
    printf('Enter 4 number:');
    for(i=0;i<M;i++)
    scanf('%d',&a[i]);
    printf('\n\nThe result:\n\n');
    for(i=M;=i>0;i--)
    {
    k=a[M-1];
    for(j=M-1;j>0;j--)
    /**********found**********/
    a[j]=a[j+1];
    a[0]=k;
    for(m=0;m<M;m++)
    printf('%d',a[m]);
    printf('\n');
    }
    }
    void main()
    {
    int a[M];
    fun(a);
    printf('\n\n');
    }
 
【正确答案】(1)void fun(int *a) (2)a[j]=a[j-1];
【答案解析】(1)由函数的调用形式可知,函数fun的形参变量应为指针类型。 (2)每次循环都将最后一个元素取出,使前面的元素向后移动一位,因此为a[j]=a[j-1];。