在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
相關文章
相關標籤/搜索