下列给定程序中,函数fun的功能是:有N×N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。
例如,若N=3,有下列矩阵:
1  2  3
4  5  6
7  8  9
计算后结果为
1  0  0
6  5  0
10  14   9
请在程序的下画线处填入正确的内容并把下画线删除。使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得改程序的结构!

程序如下:



#include <stdio.h>
#define N 4
/**********found**********/
void fun(int (*t)___1___ )
{ int i, j;
for(i=1; i<N; i++)
{ for(j=0; j<i; j++)
{
/**********found**********/
___2___ =t[i][j]+t[j][i];
/**********found**********/
___3___ =0;
}
}
}
main()
{ int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j;
printf("\nThe original array:\n");
for(i=0; i<N; i++)
{ for(j=0; j<N; j++) printf("%2d ",t[i][j]);
printf("\n");
}
fun(t);
printf("\nThe result is:\n");
for(i=0; i<N; i++)
{ for(j=0; j<N; j++) printf("%2d ",t[i][j]);
printf("\n");
}
}

·

做完再看答案~~

啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊



【答案】

1).[N]        2). t[i][j]            3).t[j][i]

【分析】

本题考查:有参函数定义,需要根据题目要求和给定程序确定函数参数。N*N矩阵中如何表示左下角和右上角元素
填空1:主函数中调用函数的参数为二维数组,所以此处形参应定义为指针数组。
填空2:根据题意可知,对称元素相加的和存放在左下三角元素中,那么应填入的是t[i][j] 

填空3:右上三角元素置0,应填入t[j][i]


【程序运行】

填空题:矩阵_2d

填空题:矩阵_留言板_02


留言板