HUST Online Judge WebBoard
Problem 1124 >> 错误百分之十 苦思冥想不知道为什么
201809140130 @ 2019-11-13 18:32:14
[ Quote ] [ Edit ] [ Delete ] 1#
#include <stdio.h>
int main() {
char a[120], b;
int i, max = 0, min=120 , sum = 0, n, flag = 0;
gets(a);

for (b = 'a'; b <= 'z'; b++) {
for (i = 0; a[i] != '\0'; i++) {
if (a[i] == b)
sum++;
}
if (sum != 0) {
if (sum > max)
max = sum;
if (sum < min)
min = sum;
}
sum = 0;
}
n = max - min;
if(n<2)
printf("No Answer\n0");
else
{
for (i = 2; i < n; i++)
if (n % i == 0) {
flag = 1;
break;
}
if (flag == 0)
printf("Lucky Word\n%d", n);
else
printf("No Answer\n0");
}
return 0;
}
201803140220 @ 2019-11-13 19:53:34
[ Quote ] [ Edit ] [ Delete ] 2#
在大的 while() 循环时要注意元素的初值
比如说你的max,min在经过第一次输入时,已经发生了改变
因此在第二次循环时未初始化,因此对后面的答案造成了干扰


但似乎你已经过了。。。
不过这里还是建议在需要用到元素时再进行定义,赋值,以避免这种问题的出现