Loading

用二维数组实现矩阵转置

实例说明:

这里给出两套源码。

自己写的:

 1 /**
 2  * Copyright (c) 1991 - 2016 Arvin Tang.
 3  * All rights reserved.
 4  *
 5  * 文件名称:实例12
 6  * 简要描述:二维数组的转置
 7  *
 8  * 当前版本:1.0
 9  * 作    者:
10  * 完成日期:2016-1-7
11  * 修订说明:
12  *
13  * 取代版本:
14  * 作    者:
15  * 完成日期:
16  * 修订说明:
17  */
18 #include <stdio.h>
19 #include <stdlib.h>
20 //
21 //clrscr();函数不是标准的C函数,只存在Tuber C中且#include <conio.h>。
22 //但是可以用system("cls");代替,且#include <stdlib.h>。
23 
24 #define ROW 3//定义行
25 #define COL 4//定义列
26 
27 int main(int argc, char const *argv[])
28 {
29     //二维数组转换
30     int a[ROW][COL];
31 
32     int i,j;
33 
34     printf("请输入一个%d行,%d列的矩阵:\n", ROW,COL);
35 
36     for(i = 0; i < ROW; i++)
37     {
38         for(j = 0; j < COL;j++)
39         {
40             scanf("%d", &a[i][j]);
41         }
42     }
43 
44     system("cls");//清屏
45 
46     printf("你刚才输入的是一个%d行,%d列的矩阵:\n", ROW,COL);
47 
48     for(i = 0; i < ROW; i++)
49     {
50         for(j = 0; j < COL;j++)
51         {
52             printf("%d\t", a[i][j]);
53         }
54 
55         printf("\n");
56     }
57 
58     printf("下面将为你转换为一个%d行,%d列的矩阵:\n", COL,ROW);
59 
60     for(i = 0; i < COL; i++)
61     {
62         for(j = 0; j < ROW; j++)
63         {
64             printf("%d\t", a[j][i]);
65         }
66 
67         printf("\n");
68     }
69 
70     return 0;
71 }
View Code

书上的:

 1 /* 用二维数组实现矩阵的转置 */
 2 #include <stdio.h>
 3 #define ROW 3
 4 #define COL 4
 5 main()
 6 {
 7     int matrixA[ROW][COL],matrixB[COL][ROW];
 8     int i,j;
 9 
10     clrscr();
11     printf("Enter elements of the matrixA,");
12     printf("%d*%d:\n",ROW,COL);
13     for( i=0; i<ROW; i++ )
14     {
15         for( j=0; j<COL; j++ )
16         {
17             scanf("%d",&matrixA[i][j]);
18         }
19     }
20 
21     for( i=0; i<ROW; i++ )
22     {
23         for( j=0; j<COL; j++ )
24         {
25             matrixB[j][i] = matrixA[i][j];
26         }
27     }
28 
29     printf("MatrixB,");
30     printf("%d*%d:\n",COL,ROW);
31     for( i=0; i<COL; i++ )
32     {
33         for( j=0; j<ROW; j++ )
34         {
35             printf("%8d",matrixB[i][j]);
36         }
37         printf("\n");
38     }
39     printf("\n  Press Any Key to Quit...  \n");
40     getch();
41 }
View Code

补充:

posted @ 2016-01-07 16:19  哈利路亚健儿奋起步伐  阅读(4221)  评论(0编辑  收藏  举报