尼科斯彻定理的c语言程序只有输出数据为4,9,16,25等等这些数时才会输出,其他数输入时不会输出等式?

#include<stdio.h>
int main()

int i,j,b,a,sum=0;
scanf("%d",&a);
b=(a)*(a)*(a);
for(i=1;i<b;i+=2)
    for(j=i;j<b;j+=2)
    {
    sum=sum+j;
    if(sum==b)
        if(j-i>4)
        printf("%d=%d+%d+...%d",b,i,i+2,j);
        else 
        printf("%d=%d+%d+%d",b,i,i+2,i+4);

    return 0;

你代码格式上传得太乱了,大概是sum没有在外层循环重置为0使程序产生了问题
参考我修改后的代码

#include <stdio.h>

int main(int argc, char const *argv[])
{
   int i, j, b, a, sum;
   scanf("%d", &a);
   b = (a) * (a) * (a);
   for (i = 1; i < b; i += 2) {
   sum = 0;
      for (j = i; j < b; j += 2) {
         sum = sum + j;
         if (sum == b)
            if (j - i > 4)
               printf("%d=%d+%d+...%d\n", b, i, i + 2, j);
            else if (j - i > 2)
               printf("%d=%d+%d+%d\n", b, i, i + 2,j);
            else
               printf("%d=%d+%d\n", b, i, j);
      }
   }
   return 0;
}