判断两个词是否为变位词

判断两个词是否为变位词,用两种方法,只用数组。c语言

参考


你题目的解答代码如下:

#include<stdio.h>
int main()
{
    int a[26]={0},i=0,n=0,j=0;
    int arr[20]={0};
    char ch='\0';
    printf("Enter first word:");
    ch=getchar();
    while(ch != '\n')
    {   if(ch>='A' && ch<='Z')
        arr[i++]=ch-'A';
        else
        arr[i++]=ch-'a';
        ch=getchar();
    }
    arr[i]=0;

    for(n=0;n<i;n++)
    {
        if(a[arr[n]])
        {
            a[arr[n]]++;
            continue;
        }
        a[arr[n]]=1;
    }
    /*
    for(n=0;n<26;n++)
    {
        printf("%c,%d\n",n+'a',a[n]);
    }
    */
    printf("Enter the second word:");
    ch=getchar();
    while(ch != '\n')
    {   if(ch>='A' && ch<='Z')
          {
             ch=ch-'A';
             a[ch]--;
          }
        else
           {
             ch=ch-'a';
             a[ch]--;
           }
        ch=getchar();
    }
    for(j=0;j<26;j++)
    {
         if(a[j]!=0)
         {
             printf("The words are not anagrams.");
             break;
         }
          else
          {
              continue;
          }
    }
    if(j==26)
    {
         printf("The words are anagrams.");
    }
    getch();
}

img

如有帮助,望采纳!谢谢!