求助:uDebug的数据过了,但voj判定WA
查看原帖
求助:uDebug的数据过了,但voj判定WA
227425
Qing_Ying楼主2024/7/20 14:06

这题弄了半天,uDebuge上的数据都过了,但是传到voj上是WA

#include<cstdio>
#include<cstring>

int main(){
  //freopen("232.in", "r", stdin);
  //freopen("232.out", "w", stdout);
  int r, c, count, k = 1; //r行c列
  char p[15][15],p_ex[15][15], t = '\0';
  bool judge[15][15];  //是否已建立新行
  while(scanf("%d %d", &r, &c) == 2 && r != 0){
    if(k != 1)  printf("\n");
    memset(p, '\0', sizeof(p));
    memset(p, '\0', sizeof(p_ex));
    memset(judge, false, sizeof(judge));
    int num[15][15] = {0};
    for(int i = 0; i < r; ++i) scanf("%s", p[i]);
    //for(int i = 0; i < r; ++i) printf("%s\n", p[i]);
    count = 0;
    for(int i = 0; i < r; ++i)
      for(int j = 0; j < c; ++j)
        if(p[i][j] != '*' && (i-1 < 0 || j-1 < 0 || (!(p[i-1][j] >= 'A' && p[i-1][j] <= 'Z' && p[i][j-1] >= 'A' && p[i][j-1] <= 'Z'))))
          num[i][j] = ++count, judge[i][j] = true;
    /*for(int i = 0; i < r; ++i){
      for(int j = 0; j < c; ++j)
      printf("%d ", num[i][j]);
      printf("\n");
    }*/
    printf("puzzle #%d:\nAcross", k++);
    for(int i = 0; i < r; ++i){
      for(int j = 0; j < c; ++j)
        if(judge[i][j]){
          printf("\n%3d.", num[i][j]);
          for(int k = j; p[i][k] >= 'A' && p[i][k] <= 'Z'; ++k){
            putchar(p[i][k]);
            judge[i][k] = false;
          }
        }
    }
    printf("\nDown");
    for(int i = 0; i < r; ++i){
      for(int j = 0; j < c; ++j)
        if(num[i][j]){
          printf("\n%3d.", num[i][j]);
          for(int k = i; p[k][j] >= 'A' && p[k][j] <= 'Z'; ++k){
            putchar(p[k][j]);
            num[k][j] = 0;
          }
        }
    }
    printf("\n");
  }
  return 0;
}

2024/7/20 14:06
加载中...