这是我的代码,用于查找数组中最常用的字符。请调试它并识别错误。它大部分时间都在工作,但在某些情况下输出不正确。请帮帮我这个
#include <stdio.h>
#define size 100
int main()
{
char a[size]={0};
int i,j, k, n;
char c, e;
printf("enter size of array\n");
scanf("%d", &n);
a[n]=0;
printf("enter the characters??\n");
for(i=0; i<n; i++)
{
scanf(" %c", & a[i]);
}
for(j=0; j<n; j++)
{
for(k=0; k<n; k++)
{
if(j==k)
{
continue;
}
else if(a[j]=a[i])
{
e=a[j];
}
else if(a[j]!=a[k])
{
continue;
}
}
}
printf("the most frequently occuring character is %c", e);
return 0;
}
答案 0 :(得分:2)
为了好玩,使用自己承担家庭作业的风险:
int count[256];
const char input[] = "hjkshrjkhsfh2389r2jhfjkjfljsdjklf";
int main()
{
int i;
for(i=0; input[i]; i++)
{
count[input[i]]++;
}
int best = 0;
char letter = 0;
for(i=0; i<256; i++)
{
if(count[i] > best)
{
best = count[i];
letter = (char)i;
}
}
printf("letter: %c, best: %d\n", letter, best);
return 0;
}
为了让它成为一个教训,这里的事情在这里做得很糟糕,现实世界会让你陷入困境:
i
重用而不是作用域。 Var名称可能更具描述性。欢迎和其他人欢迎烧烤我给出这样的家庭作业水平答案。只是想看看我能把它组合起来有多快。