在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: }

程序说明:spa

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

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

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

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

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

      第11行:MT(a)程序

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

计算结果:

1 2 3
4 5 6
7 8 9
1 4 7
2 5 8
3 6 9
相关文章
相关标签/搜索