首页 > 代码库 > 二维数组

二维数组

本程序显示了如何动态构造二维数组,可以指定数组的行数和列数:

1 int **make2darray(int rows,int cols){
2     int **x,i;
3     x=malloc(rows*sizeof(*x));
4     for(i=0;i<rows;i++){
5         x[i]=malloc(cols*sizeof(**x));
6     }
7     return x;
8 }

二维数组可以作为矩阵进行操作,矩阵中有类似三角矩阵、稀疏矩阵和单位矩阵等特殊的矩阵。

该程序即是用来判断一个矩阵是否为单位矩阵:

 1 #include<stdio.h>
 2 #define N 4
 3 int main(void)
 4 {
 5     int i,j,a[N][N];
 6     int count=0;
 7     for(i=0;i<N;i++){
 8         for(j=0;j<N;j++){
 9             scanf("%d",&a[i][j]); 
10         }
11     } 
12     for(i=0;i<N;i++){
13         for(j=0;j<N;j++){
14             if(i==j){
15                 if(a[i][j]==1){
16                     count++; 
17                 } 
18             }
19             else{
20                 if(a[i][j]==0){
21                     count++;
22                 }
23             }
24             
25         } 
26     }
27     if(count==N*N){
28         printf("yes"); 
29     }
30     else{ 
31     printf("no");
32     }
33     return 0;
34 } 

其中宏定义中的N是矩阵的行列书,可以根据自己的需要自行设置大小。

                                                            2016-10-24      12:12:49

二维数组