편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2022.06.23

    C incompatible pointer types passing 'int **' to parameter of type 'int **(*)[9]' [-Wincompatible-pointer-types]


    #include <stdio.h>
    #include <stdbool.h>
    #include <stdlib.h>
    
    int pang[9][9]={0};
    int answer=0;
    
    void check(int** data,int i,int j,int** visited,int count)
    {
        if(data[i+1][j]==data[i][j] && pang[i+1][j]==0)
        {
            visited[i+1][j]=1;
            count+=1;
            check(data,i+1,j,visited,count);
        }
        if(data[i-1][j]==data[i][j] && pang[i-1][j]==0)
        {
            visited[i-1][j]=1;
            count+=1;
            check(data,i-1,j,visited,count);
        }
        if(data[i][j+1]==data[i][j] && pang[i][j+1]==0)
        {
            visited[i][j+1]=1;
            count+=1;
            check(data,i,j+1,visited,count);
        }
        if(data[i][j-1]==data[i][j] && pang[i][j-1]==0)
        {
            visited[i][j-1]=1;
            count+=1;
            check(data,i,j-1,visited,count);
        }   
        if(count>=3)
        {
            for(int i=1;i<8;i++)
            {
                for(int j=1;j<8;j++)
                {
                    if(visited[i][j]!=0)
                    {
                        pang[i][j]=1;
                    }
                }
            }
            answer+=1;
        }
    }
    
    int main()
    {
        int data[9][9]={0};
        printf("입력 : ");
        for(int i=1;i<8;i++)
        {
            for(int j=1;j<8;j++)
            {
                scanf("%d",&data[i][j]);
            }
        }
    
        for(int i=1;i<8;i++)
        {
            for(int j=1;j<8;j++)
            {
                int visited[9][9]={0};
                int count=0;
    
                check(data,i,j,visited,count);
            }
        }
        printf("%d",answer);
        return 0;
    }
    
  • 프로필 Jow님의 편집
    날짜2022.06.22

    오류 질문드려요 살려주세요 ㅠ incompatible pointer types passing 'int **' to parameter of type 'int **(*)[9]' [-Wincompatible-pointer-types]


    #include <stdio.h>
    #include <stdbool.h>
    #include <stdlib.h>
    
    int pang[9][9]={0};
    int answer=0;
    
    void check(int** data,int i,int j,int** visited,int count)
    {
        if(data[i+1][j]==data[i][j] && pang[i+1][j]==0)
        {
            visited[i+1][j]=1;
            count+=1;
            check(data,i+1,j,visited,count);
        }
        if(data[i-1][j]==data[i][j] && pang[i-1][j]==0)
        {
            visited[i-1][j]=1;
            count+=1;
            check(data,i-1,j,visited,count);
        }
        if(data[i][j+1]==data[i][j] && pang[i][j+1]==0)
        {
            visited[i][j+1]=1;
            count+=1;
            check(data,i,j+1,visited,count);
        }
        if(data[i][j-1]==data[i][j] && pang[i][j-1]==0)
        {
            visited[i][j-1]=1;
            count+=1;
            check(data,i,j-1,visited,count);
        }   
        if(count>=3)
        {
            for(int i=1;i<8;i++)
            {
                for(int j=1;j<8;j++)
                {
                    if(visited[i][j]!=0)
                    {
                        pang[i][j]=1;
                    }
                }
            }
            answer+=1;
        }
    }
    
    int main()
    {
        int data[9][9]={0};
        printf("입력 : ");
        for(int i=1;i<8;i++)
        {
            for(int j=1;j<8;j++)
            {
                scanf("%d",&data[i][j]);
            }
        }
    
        for(int i=1;i<8;i++)
        {
            for(int j=1;j<8;j++)
            {
                int visited[9][9]={0};
                int count=0;
    
                check(data,i,j,visited,count);
            }
        }
        printf("%d",answer);
        return 0;
    }