友友们帮我看看这个怎么不对呀

这个代码可以编译运行,但是为什么和它要求的输出结果不一样呀?

img

#include <stdio.h>

int main() {
    int a, b, i, j, k, count = 0;
    scanf("%d,%d", &a, &b);
    for (i = a; i <= b; i++) {
        j = i / 100; // 百位数
        k = i % 100; // 十位数和个位数
        if (i == j * j * j + (k / 10) * (k / 10) * (k / 10) + (k % 10) * (k % 10) * (k % 10)) {
            count++;
        }
    }
    printf("%d", count);
    return 0;
}

代码思路:

  1. 读入两个三位正整数a和b;
  2. 从a到b遍历每个三位数i;
  3. 将i拆分成百位数j和十位数和个位数k;
  4. 判断i是否等于j的立方加上k的十位数的立方加上k的个位数的立方;
  5. 如果是,计数器加1;
  6. 输出计数器的值。

注意事项:

  1. 读入时要使用scanf函数,格式为"%d,%d",中间有一个逗号;
  2. 拆分i时可以使用除法和取模运算;
  3. 计算k的十位数和个位数的立方时要注意使用整除和取余运算;
  4. 输出时要使用printf函数,格式为"%d"。

没发现什么问题啊,运行提示什么?

将if语句里n==aaa+bbb+ccc修改为n==(aaa+bbb+ccc)
试下