给定程序MODll.C中函数fun的功能是:给一维数组a输入任意4个整数,并按下例的规律输出。例如输入1、2、3、4。程序运行后将输出以下方阵。 请改正函数fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增

admin2013-04-02  29

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

    请改正函数fun中指定部位的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#define M 4
/**************found**************/
void fun(int a)
{int i,j,k,m;
   printf("Enter 4 number : ");
   for(i=0; 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**************/
         aa[j]=a[j-1];
      a[0]=k;
      for(m=0; m      printf("\n");
   }
}
main()
{int a[M];
   fun(a); printf("\n\n");
}

选项

答案void fun(int *a) a[j]=a[j-1];

解析 (1)主函数中a为数组名,传过去的形参应该是数组地址。因此,fun函数中的形参不能为整型,所以将“void fun(int a)”改为“void fun(int *a)”。
(2)第二个标识下“aa[j]=a[j-1]; ”变量aa没有定义,编译时会提示出错。根据题意,“k=a[M-1];”语句是每一行的第一个值,第二个标识下的循环过程中的逻辑关系应该是前一个值赋值给当前值的后一个值。因此第二个标识下“aa[j]=a[j-1];”应该改为“a[j]=a[j-1];”。
转载请注明原文地址:https://kaotiyun.com/show/7DJp777K
0

最新回复(0)