给定程序MODll.C中函数fun的功能是:根据形参m的值(2≤m≤9),在m行m列的二维数组中存放如下所示规律的数据,由main函数输出。 例如,若输入2则输出: 若输入4则输出: 请改正程序函数中的错误

admin2013-03-29  28

问题 给定程序MODll.C中函数fun的功能是:根据形参m的值(2≤m≤9),在m行m列的二维数组中存放如下所示规律的数据,由main函数输出。
    例如,若输入2则输出:
     
    若输入4则输出:
     
    请改正程序函数中的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
#define M 10
int a[M][M]={0};
/***************found****************/
void fun(int**a,int m)
(  int j,k;
    for(j=0 ; j    for(k=0;k/***************found****************/
    a[j][k]=k*j ;
main()
{  int i,j,n ;
  printf("Enter n:");scanf
("%d",  &n);
  fun(a,13);
  for  (i=0;i  {  for(j=0;j    printf("%4d",a[j]);
    printf("\n");
    }
}

选项

答案(1)void fun(int a[][M], int m) (2)a[j][k]=(k+1)*(j+1);

解析 (1)第一标识下“int**a",a是指向指针的指针,在主函数内fun函数的调用形式是:“fun(a,n);",其中a是二:维数组,代表数组的首地址,因此fun函数的第一个参数是指针,而不是指向指针的指针,故第一个标识下应改为“voidfun(int a[][M],int m)"。
    (2)根据题干给出的例子可以分析出,数组元素与行和列的关系是a啪[k]=(k+1)*(j+1),因此第二标识下应改为“a[j][k]=(k+1)*(j+1);"。
转载请注明原文地址:https://jikaoti.com/ti/zBn0FFFM
0

最新回复(0)