[プログラミング入門]問題集3


出典:プログラマーの道by祖先
if文の使用
i,j,kのみ使用
2 D配列複写の使用
  • サンプルコード(調査対象)
  • #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char** argv) {
    	int n = atoi(argv[1]);
    	int a[n][n];
    	
    	for (int i = 0; i < n; i++) {
    	    for (int j = 0; j < n; j++) {
    	        a[i][j] = 0;
    	    }
    	}
    
    	for (int i = 0; i < n; i++) {
    		for (int j = 0; j < n; j++) {
    			printf("%3d", a[i][j]);
    		}
    		printf("\n");
    	}
    
    	return 0;
    }
  • サンプルコード(while文)
  • #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char** argv) {
    	int n = atoi(argv[1]);
    	int a[n][n];
    	
    	int i = 0;
    	while (i < n) {
    	    int j = 0;
    	    while (j < n) {
    	        a[i][j] = 0;
    	        j++;
    	    }
    	    i++;
    	}
    
        i = 0;
    	while (i < n) {
    	    int j = 0;
    	    while (j < n) {
    	        printf("%3d", a[i][j]);
    	        j++;
    	    }
    	    printf("\n");
    	    i++;
    	}
    
    	return 0;
    }
    3-1)
      1  2  3  4  5
      6  7  8  9 10
     11 12 13 14 15
     16 17 18 19 20
     21 22 23 24 25
    3-2)
      1  6 11 16 21
      2  7 12 17 22
      3  8 13 18 23
      4  9 14 19 24
      5 10 15 20 25
    3-3)
     21 22 23 24 25
     16 17 18 19 20
     11 12 13 14 15
      6  7  8  9 10
      1  2  3  4  5
    3-4)
      1  2  3  4  5
     10  9  8  7  6
     11 12 13 14 15
     20 19 18 17 16
     21 22 23 24 25
    3-5) n = 7
     9 9 9 9 9 9 9
     9 9 0 0 0 9 9
     9 0 9 0 9 0 9
     9 0 0 9 0 0 9
     9 0 9 0 9 0 9
     9 9 0 0 0 9 9
     9 9 9 9 9 9 9
    3-6) i ? j//?四則演算の1つです
     1 0 1 0 1
     0 1 0 1 0
     1 0 1 0 1
     0 1 0 1 0
     1 0 1 0 1
    3-7)n=6/3-6回適用
     1 1 0 0 1 1
     1 1 0 0 1 1
     0 0 1 1 0 0
     0 0 1 1 0 0
     1 1 0 0 1 1
     1 1 0 0 1 1
    3-8)n=6/3-6回適用
     1 1 1 0 0 0
     1 1 1 0 0 0
     1 1 1 0 0 0
     0 0 0 1 1 1
     0 0 0 1 1 1
     0 0 0 1 1 1
    3-9)
      1  2  3  4  5
     16  0  0  0  6
     15  0  0  0  7
     14  0  0  0  8
     13 12 11 10  9 
    3-10)
      1  2  3  4  5
     16 17 18 19  6
     15 24 25 20  7
     14 23 22 21  8
     13 12 11 10  9
    3-11)n=奇数
     3 3 3 3 3
     3 2 2 2 3
     3 2 1 2 3
     3 2 2 2 3
     3 3 3 3 3
    3-12)
      1  3  6 10 15
      2  5  9 14 19
      4  8 13 18 22
      7 12 17 21 24
     11 16 20 23 25