不知道错在哪,W/A,求解
查看原帖
不知道错在哪,W/A,求解
802346
bigsea楼主2022/11/15 16:43
#include<stdio.h>
#include<string.h>
#define max 10
int main(){
	char a[max][max];
	char e[max][max];
	int d[max*max];
	int r,c,i,j,cnn=1;
	while(scanf("%d",&r)==1&& r!=0){
		scanf("%d",&c);
	    memset(e,0,sizeof(e));
		int x=1,n=1,k=1;
		for(i=0;i<r;i++){
			scanf("%s",a[i]);
		}
        printf("puzzle #%d:\nAcross",cnn++);
        for(i=0;i<r;i++)
		    for(j=0;j<c;j++){
		      if(i-1<0||j-1<0||a[i-1][j]=='*'||a[i][j-1]=='*'){
		      	if(a[i][j]!='*')
		      		{
		      		d[n++]=i*c+j;}
			  }	
			}

		while(k<n){
			i=d[k]/c;j=d[k]%c;
			if(e[i][j]==0&&a[i][j]!='*'){
				printf("\n%d.",k);
				while(a[i][j]!='*'){
				printf("%c",a[i][j]);
				e[i][j]=1;
				if(j+1<c) j++;
				else break;}
			}
			k++;
		}
	    memset(e,0,sizeof(e));
	    k=1;
		printf("\nDown");
		while(k<n){	
			i=d[k]/c;j=d[k]%c;
			if(e[i][j]==0&&a[i][j]!='*'){
				printf("\n%d.",k);
			while(a[i][j]!='*'){
				printf("%c",a[i][j]);
				e[i][j]=1;
				if(i+1<r) i++;
				else break;}
			}
			k++;
		}
		printf("\n");
		}
		return 0;}
2022/11/15 16:43
加载中...