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;    
}