Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2508834
  • 博文数量: 308
  • 博客积分: 5547
  • 博客等级: 大校
  • 技术积分: 3782
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-24 09:47
个人简介

hello world.

文章分类

全部博文(308)

分类: C/C++

2011-03-24 08:06:51

    用键盘输入一个三行四列的矩阵,编写一个函数对该矩阵进行转置操作。
    我们知道,矩阵的转置的结果是A的行变成列,列变成行的操作。根据这一思想,编写代码如下:
  1. #include <stdio.h>

  2. void InputMatrix(int (*a)[4], int, int );
  3. void OutputMatrix(int (*b)[3], int, int );
  4. void MatrixTranspose(int (*a)[4], int (*b)[3]);

  5. int main(int argc, char *argv[])
  6. {
  7.   int a[3][4],b[4][3];
  8.   printf("please input 3*4 matrix\n");
  9.   InputMatrix(a, 3, 4);
  10.   MatrixTranspose(a, b);
  11.   printf("the transpo*** Matrix is\n");
  12.   OutputMatrix(b, 4, 3);
  13.   return 0;
  14. }

  15. void InputMatrix(int (*a)[4], int n, int m)
  16. {
  17.   int i,j;
  18.   for(i = 0; i < n; i++)
  19.   {
  20.     for(j = 0; j < m; j++)
  21.     {
  22.       scanf("%d",*(a + i) + j);
  23.     }
  24.   }
  25. }

  26. void OutputMatrix(int (*b)[3], int n, int m)
  27. {
  28.   int i,j;
  29.   for(i = 0; i < n; i++)
  30.   {
  31.     for(j = 0; j < m; j++)
  32.     {
  33.       printf("%d ",*(*(b + i) + j));
  34.     }
  35.     printf("\n");
  36.   }
  37. }

  38. void MatrixTranspose(int (*a)[4], int (*b)[3])
  39. {
  40.   int i,j;
  41.   for(i = 0; i < 4; i++)
  42.     for(j = 0; j < 3; j++)
  43.       b[i][j] = a[j][i];
  44. }
阅读(5546) | 评论(0) | 转发(0) |
0

上一篇:指针变量做参数

下一篇:矩阵的乘法运算

给主人留下些什么吧!~~