下面是修复后的程序:

#include <stdio.h>

int main()
{
    int i, j, k, n;
    printf("water flower number is: ");
    for(n = 100; n <= 999; n++)
    {
        i = n / 100;
        j = (n / 10) % 10;
        k = n % 10;
        if(i*i*i + j*j*j + k*k*k == n)
            printf("%-5d", n);
    }
    printf("\n");

    return 0;
}

修复说明:

  1. 在for循环的条件中,将【1】改为n <= 999,以保证循环范围在100到999之间。
  2. 在计算百位数时,将【2】改为n / 100,以求得百位数。
  3. 在计算十位数时,将【3】改为(n / 10) % 10,以求得十位数。
  4. 在计算个位数时,将【4】改为n % 10,以求得个位数。
  5. 在比较是否为水仙花数时,将【5】改为n,以判断当前的三位数是否为水仙花数。
  6. 在输出水仙花数时,将printf语句中的%-5d改为%d,以正确输出水仙花数。
  7. 添加return 0;语句,以表示程序正常结束

原文地址: http://www.cveoy.top/t/topic/h6EM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录