关于for循环的问题

[复制链接]
查看11 | 回复1 | 2009-3-18 19:23:01 | 显示全部楼层 |阅读模式
#include
void main()
{
int sum=0;
for(int i=1;i<=100;i++)
{
int sun=0;
for(int j=1;j<=i;j++)
{
sun+=j;
}
sum+=sun;
}
cout<<sum<<endl;
}
#include
void main()
{
int sum=0; int sun=0;
for(int i=1;i<=100;i++)
{
for(int j=1;j<=i;j++)
{
sun+=j;
}
sum+=sun;
}
cout<<sum<<endl;
}
为什么第二个程序运行的结果与第一个不一样?

回复

使用道具 举报

千问 | 2009-3-18 19:23:01 | 显示全部楼层
第一个中sun的适用范围比第二个中的小,第一个中sun在执行完sum+=sun;后就被释放,不存在了;而在for(int i=1;i<=100;i++) 中每一次i改变后系统会自动定义sun并且sun值为0;第二个中的sun从整个程序开始到结束都存在,每一次运行for(int i=1;i<=100;i++) 中i改变而sun保留上次用完后的值,而不是像第一个中的被重新定义并置值为0.学习高级语言多编程才能真正学会它。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行