Quick actions

cmd+k|ctrl+k

Navigation

Languages

UNIT 38.8_Test2

Snippet info

Language

C

Visibility

public

Author

mori

Created

2019-02-14T00:42:09Z

Updated

2019-02-14T00:42:09Z

#include<stdio.h>
#include<stdlib.h>
#include <string.h>

int main()
{
    int m, n;

    scanf("%d %d", &m, &n);//세로 가로 입력.
    char **matrix = malloc(sizeof(char*)*m);
   
    for (int i = 0; i < m; i++)
    {
        matrix[i] = malloc(sizeof(char) * (n + 1));    // 행렬의 가로값 포인터 할당 문자열 null문자때문.
        memset(matrix[i], 0, sizeof(char) * (n + 1));    // 행렬값 초기화
    }

    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < m; j++)
        {
        scanf("%s", matrix[i], sizeof(char));    // '@'지뢰, '0'지뢰없음 입력
        }
    }
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if (matrix[i][j] == '0')//지뢰아니면 넘어가자.
            {
                continue;
            }
            else if (matrix[i][j] == '@')//지뢰면 탐색.
            {
                for (int r = j - 1; r <= j + 1; r++)
                {
                    for (int k = i - 1; k <= i + 1; k++)
                    {
                        if((k<0||k>=i)||(r<0||r>=i))
                        continue;
                       
                        else
                            matrix[i][j] += 1;
                    }
                   
                }
               
            }

        }
    }
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if (matrix[i][j] == '@')//지뢰라면
            {
                printf("%s ",'@');//지뢰를 출력해준다.
            }
            else //아니라면
            {
                printf("%d ",matrix[i][j]);//+1된 값을 출력해준다.
            }
        }
        printf("\n");
    }
    return 0;
}
INFO