안 쓰던 블로그

C언어 2차원 배열 출력 문제들 본문

알고리즘/알고리즘 문제 풀이

C언어 2차원 배열 출력 문제들

proqk 2016. 4. 6. 00:37
반응형


1. 2차원 배열 출력1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
#include <stdio.h>
int main(){
    int x;
    scanf("%d", &x);
    int b[50][50= { 0, };
    int qq = 0;
    for (int i = 0; i<x; i++){
        for (int j = 0; j<x; j++){
            qq++;
            b[i][j] += qq;
        }
    }
 
    for (int i = 0; i<x; i++){
        for (int j = 0; j<x; j++){
            printf("%3d ", b[i][j]);
        }
        printf("\n");
    }
    return 0;
}
cs

출력






2. 2차원 배열 출력2


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
int main(){
    int x;
    scanf("%d", &x);
    int b[50][50]={0, };
    int qq=0;
    for(int i=0; i<x; i++){
        for(int j=0; j<x; j++){
            qq++;
            b[i][j]+=qq;
        }
    }
 
    for(int i=0; i<x; i++){
        for(int j=0; j<x; j++){
            printf("%3d ",b[j][i]);
        }
        printf("\n");
    }
    return 0;
}
 
cs

출력





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
26
27
28
29
30
31
 
#include <stdio.h>
int main(){
    int x;
    int i, j;
    scanf("%d", &x);
    int b[50][50= { 0, };
    int qq = 0;
    for (i = 0; i<x; i++){
        if (i % 2 == 0){
            for (j = 0; j<x; j++){
                qq++;
                b[i][j] += qq;
            }
        }
        else
        for (j = x - 1; j >= 0; j--){
            qq++;
            b[i][j] += qq;
        }
 
    }
 
    for (i = 0; i<x; i++){
        for (j = 0; j<x; j++){
            printf("%3d ", b[i][j]);
        }
        printf("\n");
    }
    return 0;
}
cs

출력



4. 달팽이 배열


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
26
27
28
29
30
31
32
33
#include <stdio.h>
 
int main(){
    int ary[50][50];
    int n, max, i, j, x = 0, y = -1, z = 1, num = 1;
    scanf("%d", &n);
    max = n;
 
    while (max > 0){
        for (i = 0; i<max; i++){
            y = y + z;
            ary[x][y] = num;
            num = num + 1;
        }
        max = max - 1;
 
        for (i = 0; i<max; i++){
            x = x + z;
            ary[x][y] = num;
            num = num + 1;
        }
        z *= -1;
    }
 
    for (i = 0; i<n; i++){
        for (j = 0; j<n; j++){
            printf("%3d ", ary[i][j]);
        }
        printf("\n");
    }
 
    return 0;
}
cs

출력



5. 지그재그 배열 반대로 출력


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
26
27
28
29
30
31
32
33
#include <stdio.h>
int main(){
    int x;
    int i, j;
    scanf("%d", &x);
    int b[50][50= { 0, };
    int qq = x*x;
 
    for (i = 0; i<x; i++){
        if (i % 2 == 0){
            for (j = 0; j<x; j++){
                qq--;
                b[i][j] -= qq+1;
                b[i][j] *= -1;
            }
        }
        else
        for (j = x - 1; j >= 0; j--){
            qq--;
            b[i][j] -= qq+1;
            b[i][j] *= -1;
        }
 
    }
 
    for (i = 0; i<x; i++){
        for (j = 0; j<x; j++){
            printf("%5d", b[j][i]);
        }
        printf("\n");
    }
    return 0;
}
cs

출력










그냥 규칙찾았던거







반응형
Comments