请编写程序fun,函数的功能是:实现B=A+A’,即把矩阵A加上A的转置,存放在矩阵B中。计算结果在main函数中输出。 例如,输入下面的矩阵: 其转置矩阵为:

admin2013-06-12  25

问题 请编写程序fun,函数的功能是:实现B=A+A’,即把矩阵A加上A的转置,存放在矩阵B中。计算结果在main函数中输出。
    例如,输入下面的矩阵:
                  
   其转置矩阵为:
                  
   程序输出:
                  
  注意:部分源程序在文件PROGl.C中。
  请勿改动主函数main和其他函数中的任何内容,仅在
函数fun的花括号中填入你编写的若干语句。
#include
void fun(int a[3][3],int b[3][3])
{
}
main()  /*主程序*/
{  int a[3][3]=({1,2,3},{4,5,
6},{7,8,9}},t[3][3];
  int i,j;
  void NONO();
  fun(a,t);
  for(i=0;i<3;i++){
    for(j=0;j<3 ; j++)
    printf("%7d",t[j]);
    printf("\n");
    }
    NONO();
}
void NONO()
{/*本函数用于打开文件,输入测试数据,调
用fun函数,输出数据,关闭文件。*/
  int i,j,k,a[3][3],t[3][3];
  FILE*rf,*wf;
  rf=fopen("in.dat","r");
  wf=fopen("out.dat","w");
  for(k=0;k<5;k++){
    for(i=0;i<3;i++)
    fscanf(rf,"%cl%d%d",&a[0],
&a[1],&a[2]);
    fun(a,t);
    for(i=0 ; i<3;i++)  {
    for(j=0;j<3;j++)fprintf
(wf,"%7d",t[j]);
    fprintf(wf,"\n");
    }
  }
  fclose(rf);
  fclose(wf);
}

选项

答案int c[3][3]; int i, j; for(i=0;i<3; i++) for(j=0;j<3;j++){ c[i][j]=a[j][i]; //矩阵的转置 b[i][j]=a[i][j]+c[i][j]; }

解析 (1)首先,将a所指数组元素中的值进行转置并放到c所指数组中。
    (2)矩阵相加是指把两个矩阵中下标相同的元素的值一一对应相加。
转载请注明原文地址:https://jikaoti.com/ti/AVn0FFFM
0

最新回复(0)