#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;
}