#10520: WA的狀況


adchangaa (下面的粗乃玩/電X108)

學校 : 國立臺灣師範大學
編號 : 52632
來源 : [60.251.177.145]
最後登入時間 :
2017-01-08 02:02:22
d086. 態度之重要的證明 -- 成功電研20th~21st C++ ~最後的競賽~ | From: [140.122.136.25] | 發表日期 : 2015-12-05 11:35

#include<stdio.h>

#include<string.h>

//char a == 97 need-96 A==65 所以需要-64才會等於數字 

int main()

{

char c[201];

int length;

int i,j,point; 

int sum=0;

while(scanf("%s",&c)!=EOF)//已經有數字了喔 >.O 

{

length=strlen(c);//測量長度 

for(i=0;i<length;i++)//抓到長度-1 即為陣列的最尾端 

{

if(c[i]==32) continue;

if(((c[i]>64)&&(91>c[i]))||((c[i]>96)&&(123>c[i])))

{

for(j=0;j<=25;j++)//0~24 25個 

{

//catch 字碼 

if(c[i]==65+j)//大寫的部分 

{

sum=sum+c[i]-64;

break;

 

}

else if(c[i]==97+j)//小寫的部分 

{

sum=sum+c[i]-96;

break;

}

}

}

else

{

if(c[i]==48) //如果敲入0字元 

{

return 0;

}

printf("Fail\n");

point=1;

break;

}

}

if(point==1) 

continue;

printf("%d \n",sum);

sum=0;

}

}

 

丟測資時一直WA
求解!
自己測沒有問題

 
#10684: Re:WA的狀況


d2513850 (林勇智)

學校 : 崑山科技大學
編號 : 5102
來源 : [114.140.72.110]
最後登入時間 :
2024-10-20 17:35:39
d086. 態度之重要的證明 -- 成功電研20th~21st C++ ~最後的競賽~ | From: [111.184.174.14] | 發表日期 : 2016-02-07 17:31

#include

#include

//char a == 97 need-96 A==65 所以需要-64才會等於數字 

int main()

{

char c[201];

int length;

int i,j,point; 

int sum=0;

while(scanf("%s",&c)!=EOF)//已經有數字了喔 >.O 

{

length=strlen(c);//測量長度 

for(i=0;i<length;i++)//抓到長度-1 即為陣列的最尾端 

{

if(c[i]==32) continue;

if(((c[i]>64)&&(91>c[i]))||((c[i]>96)&&(123>c[i])))

{

for(j=0;j<=25;j++)//0~24 25個 

{

//catch 字碼 

if(c[i]==65+j)//大寫的部分 

{

sum=sum+c[i]-64;

break;

 

}

else if(c[i]==97+j)//小寫的部分 

{

sum=sum+c[i]-96;

break;

}

}

}

else

{

if(c[i]==48) //如果敲入0字元 

{

return 0;

}

printf("Fail\n");

point=1;

break;

}

}

if(point==1) 

continue;

printf("%d \n",sum);

sum=0;

}

}

 

丟測資時一直WA
求解!
自己測沒有問題

若是輸入含有'0'字元的字串的話,則應該輸出"Fail",但你的程式提早結束

所以改成這樣:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main(void){
    unsigned char a[16384];
    int b,d,e;/*d存放總和,e為怪異的符號旗標*/
    while(scanf("%s",a)!=EOF){
        d=0;
        e=0;
        for(b=0;b<strlen(a);b++){
            if(a[b]<65){
                e=1;
            }else if(a[b]<91){
                d+=a[b]-64;
            }else if(a[b]<97){
                e=1;
            }else if(a[b]<123){
                d+=a[b]-96;
            }else{
                e=1;
            }
        }
        if(strlen(a)==1){/*檢測字串長度*/
            if(a[0]!=48){/*若字串長度==1,則檢測a[0]是否為'0'的Unicode*/
                if(e==0){/*檢測是否含有怪異的符號,若它沒有的話,則輸出總和,否則輸出"Fail"*/
                    printf("%d\n",d);
                }else{
                    printf("Fail\n");
                }
            }
        }else{/*若字串長度!=1,則直接檢測是否含有怪異的符號*/
            if(e==0){
                printf("%d\n",d);
            }else{
                printf("Fail\n");
            }
        }
    }
}

 
ZeroJudge Forum