下列给定程序中,函数fun()的功能是:给一维数组a输入任意4个整数,并按如下的规律输出。例如输入1,2,3,4,程序运行后输出以下方阵: 4 1 2 3 3 4 1 2 2 3 4 1 1 2 3 4

admin2010-11-26  13

问题 下列给定程序中,函数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
   /*******************************/
   void fun(int a)
   {int i,j,k,m;
    printf("Enter 4 number: ");
    for (i=0; i<M; i++)  scanf ("%d", &a );
   printf ("\n\n The result : \n\n ");
    for (i=M; i>0; i--)
        { k=a [M-1];
         for (j=M-1; j>0; j--)
   /**********************************/
             a[j]=a[j+1];
         a[0]=k;
         for (m=0 ;m<M; m++ ) printf ("%d ", a [m]);
         printf ("\n ");
        }
   }
   main ()
   {int a [M];
    fun(a); printf("\n\n ");
   }

选项

答案(1)错误:void fun (int a) 正确:int fim (int *a (2)错误:a[j]=a[j+1]; 正确:a[j]=a[j-1];

解析 其实,该题中题目信息已经告诉我们按“如下规律”,这就需要去认真分析矩阵的“规律”了,在第1列中,数列以4开始递减,直至1,在该数列中,行和列都是递减循环排列,所以题目在循环的时候有循环条件for(i=M;i>0;i--)和 for (j=M-1;j>0;j--),当然每次循环结束后在列中的赋值语句应该是a[j]=a[j-1];。
转载请注明原文地址:https://kaotiyun.com/show/APID777K
0

随机试题
最新回复(0)