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