原本的程式碼送出後是輸出短少(少一行)
測資1、2、3皆AC,測資4輸出短少
#include<stdio.h>
#include<stdlib.h>
int main(){
char t[200]={};
int i;
while(t[0]!='0'){
int score,fail;
for(i=0;i<200;i++){
scanf("%c",&t[i]);
if(t[i]=='\n')
break;
}
if(t[0]=='0')
break;
score=0;
fail=0;
for(i=0;i<200;i++){
if(t[i]=='\n')
break;
if(t[i]>=65 && t[i]<=90)
score = score + t[i] - 64;
else if(t[i]>=97 && t[i]<=122)
score = score + t[i] - 96;
else
fail++;
}
if(fail==0)
printf("%d\n",score);
else
printf("Fail\n");
}
return 0;
}
爬文後發現我問題在"0123"這種測資會失敗
於是改了一行
#include<stdio.h>
#include<stdlib.h>
int main(){
char t[200]={};
int i;
for(;;){
int score,fail;
for(i=0;i<200;i++){
scanf("%c",&t[i]);
if(t[i]=='\n')
break;
}
if(t[0]=='0' && t[1]=='\n') <--改了這裡
break;
score=0;
fail=0;
for(i=0;i<200;i++){
if(t[i]=='\n')
break;
if(t[i]>=65 && t[i]<=90)
score = score + t[i] - 64;
else if(t[i]>=97 && t[i]<=122)
score = score + t[i] - 96;
else
fail++;
}
if(fail==0)
printf("%d\n",score);
else
printf("Fail\n");
}
return 0;
}
結果測資1、2、4皆AC,測資3顯示逾時,請問為什麼會這樣