能帮我看看那错了吗?
问题描述Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的。例如,“Unclear”和“Nuclear”、“Rimon”和“MinOR”都是Anagrams。编写一个程序,输入两个单词,然后判断一下,这两个单词是否是Anagrams。每一个单词的长度不会超过80个字符,而且是大小写无关的。
//运行总是 NO 为什么?
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#define size 100
bool solve(char *a,char *b,int m,int n);
int main(){
int m,n,i,j;
char a[size];
char b[size];
fgets(a,size,stdin);
fgets(b,size,stdin);
m=strlen(a);
n=strlen(b);
for(i=0;i<m;i++)
toupper(a[i]);
for(j=0;j<n;j++)
toupper(b[j]);
if(solve(a,b,m,n))
puts("Yes");
else
puts("NO");
}
bool solve(char a[],char b[],int m,int n){
int i,j,k;
bool p;
for(i=0;i<m;i++){
for(j=0;j<n;j++){
if((a[i]==b[j])&&(isupper(b[j])))
tolower(b[j]);
}
}
for(k=0;k<n;k++){
if(isupper(b[k]))
p=false;
}
p=true;
}