使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件pmg1.c。在此程序中,编写程序,实现矩阵(3行、3列)的转置(行列互换)。 例如.若输入下面的矩阵: 则程序输出: 注意:部分源程序在文

admin2023-02-27  17

问题 使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件pmg1.c。在此程序中,编写程序,实现矩阵(3行、3列)的转置(行列互换)。
    例如.若输入下面的矩阵:

则程序输出:

    注意:部分源程序在文件prog1.c中。
    请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。
  试题程序:
1 #include<stdio.h>
2 #include<conio.h>
3 #include<stdlib.h>
4 void fun(int array[3][3])
5 {
6
7 }
8 void main()
9 {
10  FILE *wf;
11  int i,j;
12  int array[3][3]={{100,200,300},{400,500,600},{700,800,900}};
13   system("CLS");
14   for(i=0;i<3;i++)
15    {for(j=0;j<3;j++)
16     printf("%7d",array[j]);
17    printf("\n");
18     }
19  fun(array);
20   printf("Converted array:\n");
21   for(i=0;i<3;i++)
22    {for(j=0;j<3;j++)
23    printf("%7d",array[j]);
24    printf("\n");
25    }
26 /*********found*********/
27  wf=fopen("out.dat","W");
28  for(i=0;i<3;i++)
29    {for(j=0;j<3;j++)
30    fprintf(wf,"%7d",array[j]);
31    fprintf(wf,"\n");
32    }
33  fclose(wf);
34 /*********found*********/
35 }

选项

答案 1 void fun(int array[3][3]) 2 { 3 int i,j,t; 4 for(i=0;i<3;i++)/*将上三角和下三角对换。实现行列互换*/ 5 for(j=i+1;j<3;j++) 6 {t=array[i][j]; 7 array[i][j]=array[j][i]; 8 array[j][i]=t; 9 } 10 }

解析 要实现矩阵转置,即将上三角数组元素和下三角数组元素互换,本题通过数组元素交换方法,完成矩阵转置操作。
    因为对矩阵转置后仍然存回其本身,所以只能循环矩阵中的—个角(本程序选择的是上三角)。控制上三角的方法是在内层循环中从i+1或i开始循环变量j。
转载请注明原文地址:https://kaotiyun.com/show/bJ0D777K
0

相关试题推荐
最新回复(0)