C言語/二次元配列と使い方


マトリクスのように配列処理を行う2次元配列.
[]を2回使用し、縦寸法を1回目、横寸法を2回目に指定します.△縦×横であることを忘れないでください.
int numArr[3][4] = {
	{1,2,3,4},
    {5,6,7,8},
    {9,10,11,12}
};
    printf("%d\n", numArr[0][0]);
    printf("%d\n", numArr[2][3]);
結果
1
12
1 D配列のように、2 D配列は内側の値をすべてゼロにリセットすることもできます.
int numArr[3][4] = {0, };
https://www.acmicpc.net/problem/2775
これは2次元配列を用いた問題である.
#include <stdio.h>
int main(void){
    int arr[15][15]={0, }, num=0, i,j,count=0,sum=0,floor=0,room=0;
    for(i=0; i<15; i++){
        for(j=0; j<15; j++){
            if(i==0){arr[i][j]+=++count;}
            else{
                    sum+=arr[i-1][j];
                    arr[i][j]=sum;
            }
        }
        sum=0;
    }
    scanf("%d",&num);
    while(num--){
       scanf("%d %d",&floor,&room);
       printf("%d\n",arr[floor][room-1]);
    }
    return 0;
}
問題の条件に従って、列の大きさは15を超えず、残りは絵を描く考えで繰り返し書きます.
0楼有1名2名3名...こうして値段を入れて、
残りの状況は問題の上で要求に従って体現される.
最後に、While(num-)とscanf部分は、実はコードを初めて書くときにコード全体を囲んでいるので、配列に値を付けた部分を2回繰り返すべきですが、よく考えてみると、この必要はないので、そのまま全体を後退させました.値を保存したら、そこから重複文とscanfで入力した値を取り戻すだけです.