实例说明:
这里给出两套源码。
自己写的:
/**
* Copyright (c) 1991 - 2016 Arvin Tang.
* All rights reserved.
*
* 文件名称:实例12
* 简要描述:二维数组的转置
*
* 当前版本:1.0
* 作 者:
* 完成日期:2016-1-7
* 修订说明:
*
* 取代版本:
* 作 者:
* 完成日期:
* 修订说明:
*/
#include <stdio.h>
#include <stdlib.h>
//
//clrscr();函数不是标准的C函数,只存在Tuber C中且#include <conio.h>。
//但是可以用system("cls");代替,且#include <stdlib.h>。
#define ROW 3//定义行
#define COL 4//定义列
int main(int argc, char const *argv[])
{
//二维数组转换
int a[ROW][COL];
int i,j;
printf("请输入一个%d行,%d列的矩阵:\n", ROW,COL);
for(i = 0; i < ROW; i++)
{
for(j = 0; j < COL;j++)
{
scanf("%d", &a[i][j]);
}
}
system("cls");//清屏
printf("你刚才输入的是一个%d行,%d列的矩阵:\n", ROW,COL);
for(i = 0; i < ROW; i++)
{
for(j = 0; j < COL;j++)
{
printf("%d\t", a[i][j]);
}
printf("\n");
}
printf("下面将为你转换为一个%d行,%d列的矩阵:\n", COL,ROW);
for(i = 0; i < COL; i++)
{
for(j = 0; j < ROW; j++)
{
printf("%d\t", a[j][i]);
}
printf("\n");
}
return 0;
}
书上的:
/* 用二维数组实现矩阵的转置 */
#include <stdio.h>
#define ROW 3
#define COL 4
main()
{
int matrixA[ROW][COL],matrixB[COL][ROW];
int i,j;
clrscr();
printf("Enter elements of the matrixA,");
printf("%d*%d:\n",ROW,COL);
for( i=0; i<ROW; i++ )
{
for( j=0; j<COL; j++ )
{
scanf("%d",&matrixA[i][j]);
}
}
for( i=0; i<ROW; i++ )
{
for( j=0; j<COL; j++ )
{
matrixB[j][i] = matrixA[i][j];
}
}
printf("MatrixB,");
printf("%d*%d:\n",COL,ROW);
for( i=0; i<COL; i++ )
{
for( j=0; j<ROW; j++ )
{
printf("%8d",matrixB[i][j]);
}
printf("\n");
}
printf("\n Press Any Key to Quit... \n");
getch();
}