|
Post by huangno1 on Feb 26, 2017 22:19:04 GMT -8
程式說明
在網路上常看到一段話,若字母 A/a 為 1 分,B/b 為 2 分,依此類推,Z/z 為 26 分,則 knowledge(知識)這個字為 11 + 14 + ... + 5 = 96 分,而 attitude(態度)為1 + 20 +...+ 5 = 100分。不是英文字母的字元都計為 0 分。
本程式將由使用者輸入一個英文單字(不超過 30 個字元),請輸出該單字的分數。
注意,Knowledge、KNOWLEDGE、KNOwleD@GE 都是合法輸入,也都會得到 96 分。
#include <stdio.h>
#include <ctype.h>
int main ( )
{
int i , sum = 0 ;
int count [ 26 ] = { 0 } ;
char input = getchar ( ) ;
while ( input != '\n' )
{
if ( isalpha ( input ) )
{
count [ toupper ( input ) - 'A' ] += 1 ;
}
input = getchar ( ) ;
}
for ( i = 0 ; i < 26 ; i ++ )
{
sum += ( i + 1 ) * count [ i ] ;
}
printf ( "%d", sum ) ;
}
|
|