一道C语言编程题,请高手帮忙!
程序代码如下:#include<stdio.h>main(){inti,j,sum;for(i=3;i>=1;i--){sum=0;for(j=1;j<=i;j++)su...
程序代码如下:
#include <stdio.h>
main()
{int i,j,sum;
for(i=3;i>=1;i--)
{
sum=0;
for(j=1;j<=i;j++)
sum+=i*j;
}
printf("%d\n",sum);
}
该程序的输出结果是多少?答案是1。但是我不懂,请给出详细的解释。谢谢! 展开
#include <stdio.h>
main()
{int i,j,sum;
for(i=3;i>=1;i--)
{
sum=0;
for(j=1;j<=i;j++)
sum+=i*j;
}
printf("%d\n",sum);
}
该程序的输出结果是多少?答案是1。但是我不懂,请给出详细的解释。谢谢! 展开
展开全部
很简单啊。仔细看这点for
for(i=3;i>=1;i--)
{
sum=0; 不论第一个for循环执行多少次,sum都被重新赋值为0,当i=1做最后一次循环时,在进入第二个for循环之前sum=0进入第二个for循环后,for(j=1;j<=i;j++) 等价于
for(j=1;j<=1;j++),所以只执行一次循环,所以此时sum+=i*j等价于sum=sum+i*j=sum+1*1=0+1=1;所以最后sum=1
for(i=3;i>=1;i--)
{
sum=0; 不论第一个for循环执行多少次,sum都被重新赋值为0,当i=1做最后一次循环时,在进入第二个for循环之前sum=0进入第二个for循环后,for(j=1;j<=i;j++) 等价于
for(j=1;j<=1;j++),所以只执行一次循环,所以此时sum+=i*j等价于sum=sum+i*j=sum+1*1=0+1=1;所以最后sum=1
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sum=0; //罪魁祸首在这里
每次都从新开始,加完一遍,清零
所以计算是最后一次的,那是i = 1, j<=i =1
所以结果就是1
如果你想求所有的和,把那句去了就O了
每次都从新开始,加完一遍,清零
所以计算是最后一次的,那是i = 1, j<=i =1
所以结果就是1
如果你想求所有的和,把那句去了就O了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
明显是1,每次i取值,sum都置为0,正确的应该sum在循环的外面
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
答案不可能是1,虽然我去编译器验证,但是绝对不可能是1 。除非你题目抄错了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询