d086
輸入說明 :
輸入英文單字,大小寫不限,當輸入0的時候就結束程式。 長度最長為200個字。 請參照Sample Input。
輸出說明 :
輸出將英文單字依照題目的規則轉換成數字後相加的結果,如果中間參雜怪異的符號,請輸出Fail;但是英文字母的大小寫並不會影響結果,也就是說A和a所代表的值是相同 的。請參照Sample Output。
temp=array[i]-64,
temp=array[i]-96;
小寫的a是65(ascii),大寫的A是97(ascii)但是題目說,a,A都是1所以要減64和97
這題還有更快的做法,可以用ctype.h的函式tolower,把字母全部換成小寫在對每個小寫減64
還有ctype.h的函式isalpha來判斷是不是字母
#include<stdio.h>
#include<string.h>
int main(){
char array[201]={'\0'};
int i,sum,temp,check;
while(scanf("%s",array)!=EOF)
{
if(array[0]=='0'&&array[1]=='\0')
{
break;
}
check=0;
sum=0;
for(i=0; i<strlen(array);i++)
{
if(array[i]>='A' && array[i]<='Z')
{
temp=array[i]-64 ;
sum+=temp;
}
else if(array[i]>='a'&&array[i]<='z')
{
temp=array[i]-96;
sum+=temp;
}
else
{
check=1;
break;
}
}
if(check)
printf("Fail\n");
else
printf("%d\n",sum);
}
return 0;
}