问答题 请编写函数proc(),该函数的功能是:实现B=A+A",即把矩阵A加上A的转置,存放在矩阵B中。计算结果在main()函数中输出。
例如,输入下面矩阵:
1 1 1
4 4 4
7 7 7
其转置矩阵为:
1 4 7
1 4 7
1 4 7
则程序输出:
2 5 8
5 8 11
8 11 14
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void proc(int a[3][3], int b[3][3])
{

}
void main()
{int arr[3][3]={{1, 1, 1}, {4, 4, 4}, {7, 7, 7}}, t[3][3];
int i, j;
system("CLS");
proc(art, t);
for(i=0; i<3; i++)
{
for(j=0; j<3; j++)
printf("%7d", t[i][j]);
printf("/n");
}
}
【正确答案】
【答案解析】void proc(int a[3][3], int b[3][3])
{
int i, j;
for(i=0; i<3; i++) //从题目中可知"A"表示的为a数组的行与列下标互换得到的数组
for(j=0; j<3; j++)
b[i][j]=a[i][j]+a[j][i]; //因此把互换的数组与原数组中的和放到b数组中
} [解析] 矩阵与其逆置矩阵的关系为:逆置矩阵中某一位置上的元素值为原矩阵中,行下标与列下标互换后的位置上的元素。根据这个特点求出各个位置上逆置矩阵中对应的值,进行相加并放在该位置上。