为什么程序没问题为啥输入结果不对列?
#include<stdio.h>int main(void)
{
intmin,max,sum;
printf("Enter lower and upper integer limits:");
scanf("%d%d",&min,&max);
while (min<max)
{
for(sum=0;min<=max;min++)
sum+=min*min;
printf("The sun of the squares form %d to %d is %d\n",min*min,max*max,sum);
printf("Enter next set of limits:");
scanf("%d%d",&min,&max);
}
printf("Done\n");
return 0;
}
这个程序有问题 为什么输入结果就是不对啊我输入 5 9 结果显示的是100 81 求教各位大神 没错啊,输入2个数a,b
从a的平方加到b的平方
我输入110
输出385
手动算了下没错{:10_249:} 我输入5 9
输出255
没错{:10_269:} 但是我的电脑显示的是printf(The sun of the squares form %d to %d is%d\n",min*min,max*max,sum)
输入 59
显示的是
100 81 255
后面的两个数是对的,但是前面的5*5结果显示的为什么是100呢? 我知道了 min++ min已经成为10了 他就退出循环了所以是100 渣渣网速发个帖要一分钟 不会自己单步调试一下啊,发帖前能不能把你这个函数的功能说一下,做下注释也好啊,别人看到都不想回了,还有就是代码不要这样发,如果长的话看起来很乱的
鱼C论坛版主招聘#include<stdio.h>
int main(void)
{
intmin,max,sum;
printf("Enter lower and upper integer limits:");
scanf("%d%d",&min,&max);
while (min<max)
{
for(sum=0;min<=max;min++)
sum+=min*min;
printf("The sun of the squares form %d to %d is %d\n",min*min,max*max,sum);
printf("Enter next set of limits:");
scanf("%d%d",&min,&max);
}
printf("Done\n");
return 0;
} 你这段代码逻辑上就已经很有问题了
你好好看看你运行到printf这个语句的时候min的值已经不是你最开始输入的值了,而经过循环之后自++加到5了好吗 轮回的夏 发表于 2016-8-12 20:30
不会自己单步调试一下啊,发帖前能不能把你这个函数的功能说一下,做下注释也好啊,别人看到都不想回了,还 ...
OK~知道了~~谢谢哈~ wang815309286 发表于 2016-8-14 09:49
OK~知道了~~谢谢哈~
{:5_93:}说得对。 本帖最后由 18813974736 于 2016-8-29 17:28 编辑
其实你在for循环那里加个大括号你就会很清晰了
上代码:
#include<stdio.h>
int main()
{
intmin,max,sum;
printf("Enter lower and upper integer limits:");
scanf("%d%d",&min,&max);
while (min<max)
{
for(sum=0;min<=max;min++)
{
sum+=min*min;
printf("The sun of the squares form %d to %d is %d\n",min*min,max*max,sum);
}
printf("The sun of the squares form %d to %d is %d\n",min*min,max*max,sum);
printf("Enter next set of limits:");
scanf("%d%d",&min,&max);
}
printf("Done\n");
return 0;
}
原因:你的for循环里在更新min值,计算5到9平方和之后,min变为10。printf()打印了min平方即100。
改法:在for循环里用临时变量temp进行更新,代码如下:
for (int temp = 0, sum = 0; temp <= max; temp++)
sum += temp*temp;
printf("The sum of the squares form %d to %d is %d\n", min, max, sum);
页:
[1]