#146: 可以幫忙看看我錯在哪嗎


kohsiangyu (柯享雨)

學校 : 國立屏東高級中學
編號 : 1151
來源 : [140.117.182.57]
最後登入時間 :
2010-05-30 00:33:27
b103. C. 怪物辨識 -- 2005 NPSC 國中組決賽 | From: [218.175.199.112] | 發表日期 : 2008-02-03 00:21

#include <stdio.h>
#include <stdlib.h>

int main()
{
  int a1,a2,a3,a4,i,j,k,l,pi,b1,b2,f,n;
  char s1[10][40][41],s2[10][40][41];
  while(scanf("%d%d%d%d",&a1,&a2,&a3,&a4)!=EOF){
    pi=a3*a4;
    for(i=0;i<a1;++i){
      for(j=0;j<a3;++j){
        scanf("%s",s1[i][j]);
      }
    }
    for(i=0;i<a2;++i){
      for(j=0;j<a3;++j){
        scanf("%s",s2[i][j]);
      }
    }
    for(i=0;i<a2;++i){
      for(j=0,f=0;j<a1;++j){
        for(k=0,b1=0,b2=0;k<a3;++k){
          for(l=0;l<a4;++l){
            if(s1[j][k][l]=='-') continue;
            else if(s1[j][k][l]!=s2[i][k][l]) ++b1;
            else ++b2;
          }
        }
        if(b2>(4*b1)){
          f=1;
          break;
        }
      }
      if(f) printf("Y\n");
      else printf("N\n");
    }
  }
  return 0;
}
 
#147: Re:可以幫忙看看我錯在哪嗎


looser (looser)

學校 : 不指定學校
編號 : 1031
來源 : [122.121.26.214]
最後登入時間 :
2008-11-01 03:37:57
b103. C. 怪物辨識 -- 2005 NPSC 國中組決賽 | From: [220.129.65.71] | 發表日期 : 2008-02-03 01:32

#include <stdio.h>#include <stdlib.h>int main(){  int a1,a2,a3,a4,i,j,k,l,pi,b1,b2,f,n;  char s1[10][40][41],s2[10][40][41];  while(scanf("%d%d%d%d",&a1,&a2,&a3,&a4)!=EOF){    pi=a3*a4;    for(i=0;i<a1;++i){      for(j=0;j<a3;++j){        scanf("%s",s1[i][j]);      }    }    for(i=0;i<a2;++i){      for(j=0;j<a3;++j){        scanf("%s",s2[i][j]);      }    }    for(i=0;i<a2;++i){      for(j=0,f=0;j<a1;++j){        for(k=0,b1=0,b2=0;k<a3;++k){          for(l=0;l<a4;++l){            if(s1[j][k][l]=='-') continue;            else if(s1[j][k][l]!=s2[i][k][l]) ++b1;            else ++b2;          }        }        if(b2>(4*b1)){          f=1;          break;        }      }      if(f) printf("Y\n");      else printf("N\n");    }  }  return 0;}

犯了題目沒看清楚的錯誤,是先行再列....不是先列再行
改一改後基本上沒問題

#include <stdio.h>
#include <stdlib.h>

int main()
{
  int a1,a2,a3,a4,i,j,k,l,pi,b1,b2,f,n;
  char s1[10][40][41],s2[10][40][41];
  while(scanf("%d%d%d%d",&a1,&a2,&a3,&a4)!=EOF){
    pi=a3*a4;
    for(i=0;i<a1;++i){
      for(j=0;j<a4;++j){
        scanf("%s",s1[i][j]);
      }
    }
    for(i=0;i<a2;++i){
      for(j=0;j<a4;++j){
        scanf("%s",s2[i][j]);
      }
    }
    for(i=0;i<a2;++i){
      for(j=0,f=0;j<a1;++j){
        for(k=0,b1=0,b2=0;k<a4;++k){
          for(l=0;l<a3;++l){
            if(s1[j][k][l]=='-') continue;
            else if(s1[j][k][l]!=s2[i][k][l]) ++b1;
            else ++b2;
          }
        }
  //printf("%d %d\n",b2,b1);
        if(b2>=(4*b1)){
          f=1;
          goto A;
        }
      }
  A:;
      if(f) printf("Y\n");
      else printf("N\n");
    }
  }
  return 0;
}

 
ZeroJudge Forum