判断两个词是否为变位词,用两种方法,只用数组。c语言
1条回答 默认 最新
CSDN专家-天际的海浪 2021-10-31 01:29关注#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(); }
如有帮助,望采纳!谢谢!
评论 打赏 举报解决 1无用