Anagrams问题
1 #include<stdio.h> 2 #include<string.h> 3 4 int main() 5 { 6 int i; 7 char word1[81],word2[81]; //分别用于存储输入的两个单词 8 int word1_len,word2_len; //分别用于记录输入的两个单词的长度 9 int letter_num[2][26]={{0},{0}}; //二维数组,用于记录两个单词中每一个英文字母(不区分大小写)所出现的次数 10 11 //输入 12 gets(word1); //单词1 13 gets(word2); //单词2 14 15 word1_len=strlen(word1); //得到单词1的长度 16 word2_len=strlen(word2); //得到单词2的长度 17 18 //判断 19 if(word1_len==word2_len) //首先判断单词1和单词2的长度是否相等 20 { 21 for(i=0;i<word1_len;i++) //遍历单词1的每一个英文字母(不区分大小写),得到各个字母的个数 22 { 23 if(word1[i]>='A'&&word1[i]<='Z') //大写字母 24 letter_num[0][word1[i]-'A']++; 25 else if(word1[i]>='a'&&word1[i]<='z') //小写字母 26 letter_num[0][word1[i]-'a']++; 27 } 28 29 for(i=0;i<word2_len;i++) //遍历单词2的每一个英文字母(不区分大小写),得到各个字母的个数 30 { 31 if(word2[i]>='A'&&word2[i]<='Z') //大写字母 32 letter_num[1][word2[i]-'A']++; 33 else if(word2[i]>='a'&&word2[i]<='z') //小写字母 34 letter_num[1][word2[i]-'a']++; 35 } 36 37 for(i=0;i<26;i++) //判断单词1和单词2中每一个英文字母(不区分大小写)所出现的次数都是相同的 38 { 39 if(letter_num[0][i]!=letter_num[1][i]) 40 break; 41 } 42 43 if(i==26) //都相同 44 putchar('Y'); 45 else 46 putchar('N'); 47 } 48 else 49 putchar('N'); 50 51 return 0; 52 }