#103: 到底哪裡出錯


kohsiangyu (柯享雨)

學校 : 國立屏東高級中學
編號 : 1151
來源 : [140.117.182.57]
最後登入時間 :
2010-05-30 00:33:27
b077. C. 不公平的人,是誰? -- 2007 NPSC 國中組初賽 | From: [218.175.193.188] | 發表日期 : 2008-01-07 20:38

我的程式碼這樣寫哪裡出問題??

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

int main()
{
  int i,n;
  long long x,y;
  char *a,*b,c[100],d[100];
  while(scanf("%s%s",c,d)!=EOF)
  {
    if(c[0]==0&&d[0]==0) break;
    a = c;
    b = d;
    while(a[0]=='0') a++;
    while(b[0]=='0') b++;
    if(strlen(a)>strlen(b)) printf("Unfair\n");
    else if(strlen(a)==strlen(b))
    {
      n=0;
      for(i=0;i<strlen(a);i++)
      {
        if(a[i]>b[i]){
          n=1;
          break;
        }
        else n=0;
      }
      if(n==1) printf("Unfair\n");
      else printf("Fair\n");
    }
    else printf("Fair\n");
  }
  return 0;
}

每次測試都會出現

與正確輸出不相符(line:4)
您的答案為: Unfair
正確答案為: Fair

 
#166: Re:到底哪裡出錯


dowdow (QC.L of WLCSC)

學校 : 國立武陵高級中學
編號 : 1013
來源 : [140.112.25.49]
最後登入時間 :
2012-03-23 10:04:16
b077. C. 不公平的人,是誰? -- 2007 NPSC 國中組初賽 | From: [218.161.71.26] | 發表日期 : 2008-02-12 23:58

問題應該是在這裡:

for(i=0;i<strlen(a);i++)
      {
        if(a[i]>b[i]){
          n=1;
          break;
        }
        else n=0;

line:4的測資應該是這樣:

2568923261337487616 3998886088796204288

若a[0]<b[0](如上方,3>2)應該直接就可以判定b是大於a的,照您的程式會一直找到a[i]>b[i]才停下來,我想問題應該就出在這個段落吧。

 
#528: Re:到底哪裡出錯

Unknown User

b077. C. 不公平的人,是誰? -- 2007 NPSC 國中組初賽 | From: [118.161.8.220] | 發表日期 : 2008-08-26 12:33

問題應該是在這裡:

for(i=0;i<strlen(a);i++)      {        if(a[i]>b[i]){          n=1;          break;        }        else n=0;

line:4的測資應該是這樣:

2568923261337487616 3998886088796204288

若a[0]<b[0](如上方,3>2)應該直接就可以判定b是大於a的,照您的程式會一直找到a[i]>b[i]才停下來,我想問題應該就出在這個段落吧。

我的程式不能被編譯= =,出現WA(line 2)

但是我用Dev-C++可以
#include <stdio.h>

int main() {
    long n1,n2;
    while(scanf("%d %d",&n1,&n2)!=EOF ) {
    if((n1!=0)&&(n2!=0)){
         if(n1<=n2){
              printf("Fair\n");}
         else{
              printf("Unfair\n");     
         }
         }
    }
    return 0;
}

 
#529: Re:到底哪裡出錯


minimada (MaDa)

學校 : 國立屏東大學
編號 : 2351
來源 : [163.18.48.47]
最後登入時間 :
2009-03-26 12:42:07
b077. C. 不公平的人,是誰? -- 2007 NPSC 國中組初賽 | From: [218.173.16.142] | 發表日期 : 2008-08-26 14:02

我的程式不能被編譯= =,出現WA(line 2)

但是我用Dev-C++可以
#include <stdio.h>

int main() {
    long n1,n2;
    while(scanf("%d %d",&n1,&n2)!=EOF ) {
    if((n1!=0)&&(n2!=0)){
         if(n1<=n2){
              printf("Fair\n");}
         else{
              printf("Unfair\n");      
         }
         }
    }
    return 0;
}

WA不是不能編譯,是答案錯誤

首頁http://cat.nknush.kh.edu.tw/ZeroJudge/ 有說明

這題主要是練習字串...

如果你要直接使用長整數,讀取的時候要搭配相對應的格式化符號 scanf("%ld %ld",&n1,&n2);

 

 
ZeroJudge Forum