在C语言中运用全局变量返回函数的数组运算结果(Lu Hongling)

      C语言中,数组可以通过函数的形参或实参输入到函数中, 但运算后返回时就有问题了,因为C语言的函数只能返回一个数,不能返回数组。这个问题可以通过设置全局变量的方式予以解决,请看下面的例题。

例题.  编制函数MT()用以计算一个3*3矩阵的转置,并将结果返回到main函数中。

   1:  #include <stdio.h>
   2:   
   3:  void PM(int x[3][3]);
   4:  void MT(int a[3][3]);
   5:   
   6:  int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
   7:   
   8:  main()
   9:  {
  10:      PM(a);
  11:      MT(a);
  12:      PM(a);
  13:  }
  14:   
  15:  void MT(int a[3][3])
  16:  {
  17:      int i,j,b[3][3];
  18:      for(i=0;i<=2;i++)
  19:      {
  20:          for(j=0;j<=2;j++)
  21:          {
  22:              b[j][i]=a[i][j];
  23:          }
  24:      }
  25:      for(i=0;i<=2;i++)
  26:      {
  27:          for(j=0;j<=2;j++)
  28:          {
  29:              a[i][j]=b[i][j];
  30:          }
  31:      }
  32:  }
  33:   
  34:  void PM(int x[3][3])
  35:  {
  36:      int i,j;
  37:      for(i=0;i<=2;i++)
  38:      {
  39:          for(j=0;j<=2;j++)
  40:          {
  41:              printf("%d ",x[i][j]);
  42:          }
  43:      printf("\n");
  44:      }
  45:  }

程序说明:

      本程序包含3个函数:main();MT() -- 用以求矩阵的转置;PM()-- 打印矩阵;

      第6行: int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};

                  定义了一个3*3的全局数组,并对该数组初始化;

      第15行:void MT(int a[3][3])

                  定义了函数MT,并将全局数组a作为其形参;

      第11行:MT(a)

                   主程序调用函数MT后,全局数组的元素被转置。

计算结果:

1 2 3
4 5 6
7 8 9
1 4 7
2 5 8
3 6 9

转载于:https://my.oschina.net/u/588967/blog/73505

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值