ZCMU-1101



这个题不怎么难,就是当时没有理解到字典序的意思:我一直以为是自己元素间的比较,后再同学帮助下明白这里是与其他比,这样就很简单了。就是要求当前那个最小就可以了。


对这道题我有点吐槽明明自己都说了最后一组数据没有空行,但是最后AC后的代码还是有换行的!

#include<string.h>
//字典序理解有误,不是和自己元素比较而是与其他段
//比较同一下标,所以让当前最小就行 
char s[11][11];
int main(){
    int i,j,n,flag=0;
    while(~scanf("%d",&n)){
        memset(s,0,sizeof(s));
        for(i=0;i<n;i++){
            scanf("%s",s[i]);
            //这样输入方便可以省去对换行的处理
			//%s以换行或者空格结束 
        }
        for(i=0;i<n;i++){
            for(j=0;j<n;j++){
                if(s[i][j]=='.'){
                    //找到最小 
                    //因为不要相同所以能小就小 
                    s[i][j]='A';
                    if(s[i][j+1]=='A'||s[i][j-1]=='A'||s[i-1][j]=='A'||s[i+1][j]=='A'){
                        s[i][j]='B';
                        if(s[i][j+1]=='B'||s[i][j-1]=='B'||s[i-1][j]=='B'||s[i+1][j]=='B'){
                            s[i][j]='C';
                            if(s[i][j+1]=='C'||s[i][j-1]=='C'||s[i-1][j]=='C'||s[i+1][j]=='C'){
                                s[i][j]='D';
                                if(s[i][j+1]=='D'||s[i][j-1]=='D'||s[i-1][j]=='D'||s[i+1][j]=='D')
                                s[i][j]='E';
                            }
                        }
                    }
                }
                 
            }
        }
        for(i=0;i<n;i++){
           for(j=0;j<n;j++){
                printf("%c",s[i][j]);
            }
            printf("\n");
        }
        printf("\n");//感觉有问题 
    }
    return 0;
}
posted @ 2024-04-15 22:02  海&贼  阅读(1)  评论(0编辑  收藏  举报