只有70分看看哪里不对大佬
查看原帖
只有70分看看哪里不对大佬
1610457
wjc007楼主2024/12/12 21:47
# include <iostream>//想想结构体行不行(一个字符,另一个表示周围雷数)
using namespace std;
struct  lei
{
    int weilei = 0;
    char i;
};

void saolei(struct lei * p,int n,int m)//边输入边扫边加
{  
    int i;
    for(i=0;i<n*m;i++)
    {

        cin >> ((p+i)->i);
        if (((p+i)->i) == '*')
        {   if (i == 0)//第一个
            {
                (p+i+1)->weilei++;
                (p+i+n)->weilei++;
                (p+i+n+1)->weilei++;  
            }
            else if (i == (m-1))//第一行最后一个
            {
                (p+i-1)->weilei++;
                (p+i+n)->weilei++;
                (p+i+n-1)->weilei++;
            }
            else if (i == (m*(n-1) - 1))//最后一行第一个
            {
                (p+i+1)->weilei++;
                (p+i-n)->weilei++;
                (p+i+n+1)->weilei++;   

            }
            else if (i == (n*m-1))//最后一个
            {
                (p+i-1)->weilei++;
                (p+i+n)->weilei++;
                (p+i+n-1)->weilei++;
            }
            else if (i/(m) == 0)//第一行
            {
                (p+i+1)->weilei++;//不是边边角角时
                (p+i-1)->weilei++;

                (p+i+n)->weilei++;
                (p+i+n+1)->weilei++;            
                (p+i+n-1)->weilei++;
                
            }
            else if (i%(m) == 0)//第一列
            {
                (p+i+1)->weilei++;//不是边边角角时
                

                (p+i+n)->weilei++;
                (p+i+n+1)->weilei++;            
                

                (p+i-n)->weilei++;
                (p+i-n+1)->weilei++;
                
            }
            else if ((i/m) == (n-1))//最后一行
            {
                (p+i+1)->weilei++;//不是边边角角时
                (p+i-1)->weilei++;

                (p+i-n)->weilei++;
                (p+i-n+1)->weilei++;
                (p+i-n-1)->weilei++;
            }
            else if ((i%m) == (m-1))//最后一列
            {
                //不是边边角角时
                (p+i-1)->weilei++;

                (p+i+n)->weilei++;
                           
                (p+i+n-1)->weilei++;

                (p+i-n)->weilei++;
                
                (p+i-n-1)->weilei++;
            }
            else
            {
                (p+i+1)->weilei++;//不是边边角角时
                (p+i-1)->weilei++;

                (p+i+n)->weilei++;
                (p+i+n+1)->weilei++;            
                (p+i+n-1)->weilei++;

                (p+i-n)->weilei++;
                (p+i-n+1)->weilei++;
                (p+i-n-1)->weilei++;
            }
            
            
            
            

            

        }

        if (((p+i)->i) == '?')
        {
            ;
        }

    }

    return;
}
int main()
{
    
    int i;
    
    int n,m;
    struct lei * p;
    cin >> n >> m;
   
    p = (struct lei *) malloc(sizeof(struct lei)* n*m);
    
    saolei(p,n,m);
    for (i = 0;i<n*m;i++)
    {
        if ((p+i)->i == '*')
        printf("%c",(p+i)->i);
        else 
        printf("%d",(p+i)->weilei);

        if((i%m) == (m-1))
        cout << endl;
    }
    

   
    
    
    
    return 0;
}
2024/12/12 21:47
加载中...