|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
下列代码中黄色加深处
若使用break 输入10时,获取的结果不止1个,结果见下图
若使用return 0,获取的结果则只有1个,就是图片中结果的第一种
请问造成这个的原因是什么?
#include <stdio.h>
int main()
{
int a,iSum = 0,i,j,cubed;
printf("请输入一个整数:");
scanf("%d", &a);
cubed = (a * a*a);
for (j = 1; j < (cubed);j += 2)
for (i = j; i <= (cubed);)
{
iSum += i;
if (iSum == cubed)
{
printf("%d = %d + %d ... + %d", cubed, j, j + 2, i);
break;
}
if (iSum > cubed)
{
iSum = 0; //这里遗漏了将iSum清零的步骤
break;
}
i += 2;
}
}
本帖最后由 superbe 于 2019-10-7 16:36 编辑
break只是退出内层for循环,会接着继续执行外层的循环,而return直接退出main函数了,所以只有一个结果。
这个break前面应该有iSum=0;
|
|