求详解,不懂
查看原帖
求详解,不懂
1320251
wsllk22楼主2024/11/30 01:18

有没有大佬愿意看看; 为什么将

tmp=0

放入else中就是90,而放入for中就是ac; 90代码{

#include <bits/stdc++.h>
using namespace std;
int m,n,tmp;   

int main(void){
    cin>>n>>m;char a[n+1][m+1];
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            cin>>a[i][j];
        }
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            if(a[i][j]=='*')cout <<'*';
            else {
                tmp=0;
                if(a[i-1][j-1]=='*')tmp++;
                if(a[i-1][j]=='*')tmp++;
                if(a[i-1][j+1]=='*')tmp++;
                if(a[i][j-1]=='*')tmp++;
                if(a[i][j+1]=='*')tmp++;
                if(a[i+1][j-1]=='*')tmp++;
                if(a[i+1][j]=='*')tmp++;
                if(a[i+1][j+1]=='*')tmp++;
                cout <<tmp;
            }
        }
        cout<<endl;
    }
    return 0;
}

} ac代码:

#include <bits/stdc++.h>
using namespace std;
int m,n,tmp;   

int main(void){
    cin>>n>>m;char a[n+1][m+1];
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            cin>>a[i][j];
        }
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            tmp=0;
            if(a[i][j]=='*')cout <<'*';
            else {
                if(a[i-1][j-1]=='*')tmp++;
                if(a[i-1][j]=='*')tmp++;
                if(a[i-1][j+1]=='*')tmp++;
                if(a[i][j-1]=='*')tmp++;
                if(a[i][j+1]=='*')tmp++;
                if(a[i+1][j-1]=='*')tmp++;
                if(a[i+1][j]=='*')tmp++;
                if(a[i+1][j+1]=='*')tmp++;
                cout <<tmp;
            }
        }
        cout<<endl;
    }
    return 0;
}
2024/11/30 01:18
加载中...