比如这里的这道Anagrams问题,两个单词若字母出现次数相等,则输出Y,否则输出N显示运行错误,刚学了数组的知识,我也在网上收了一下这题的程序,但都涉及到我还没学到知识,按道理来讲,这题只用数组的知识也能解出来的
#include <stdio.h>
int main()
{
int i, j, c, temp1, temp2, min1, min2, d;
char a[80], b[80];
i = 0;
while((a[i] = getchar()) != '\n') i++;
a[i] = '\0';
c = i;
j = 0;
while((b[j] = getchar()) != '\n') j++;
b[j] = '\0';
d = j;
if(c != d)
printf("N");
else
{
for(i = 0; i < c; i++)
{
if(a[i] >= 65 && a[i] <= 90) a[i] += 32;
if(b[i] >= 65 && b[i] <= 90) b[i] += 32;
}
for(i = 0; i < c - 1; i++)
{
min1 = i;
min2 = i;
for(j = i + 1; j < c; j++)
{
if(a[min1] > a[j]) min1 = j;
if(b[min2] > b[j]) min2 = j;
}
temp1 = a[i];
a[i] = a[min1];
a[min1] = temp1;
temp2 = b[i];
b[i] = b[min2];
b[min2] = temp2;
}
for(i = 0; i < c; i++)
if(a[i] != b[i]) break;
if(i == c) printf("Y");
else printf("N");
}
return 0;
}