百钱买百鸡的for循环问题

幻灵小龙 2011-02-19 04:23:27
关于cock、hen和chick的初始化位置,我知道在for循环里定义并初始化的变量只能在for循环里使用。在for循环外边定义和在for循环里定义为什么结果不同?求教
[code=C]
#include "stdafx.h"
#include<iostream>
using namespace std;
int main()
{
//在for循环里分别定义初始化,运行正常
for(int cock=1;cock<=13;cock++)
for(int hen=1;hen<=18;hen++)
for(int chick=3;chick<=96;chick++)
if(cock*7+5*hen+chick/3==100&&cock+hen+chick==100&&chick%3==0)
cout<<"cock="<<cock<<",hen="<<hen<<",chick="<<chick<<endl;
}
[/code]

[code=C]
#include "stdafx.h"
#include<iostream>
using namespace std;
int main()
{
int cock=1;int hen=1;int chick=3;//在这里定义并初始化,运行正常但没结果
for(;cock<=13;cock++)
for(;hen<=18;hen++)
for(;chick<=96;chick++)
if(cock*7+5*hen+chick/3==100&&cock+hen+chick==100&&chick%3==0)
cout<<"cock="<<cock<<",hen="<<hen<<",chick="<<chick<<endl;
}
[/code]
...全文
543 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
幻灵小龙 2011-02-19
  • 打赏
  • 举报
回复
明白了,里面的循环必须初始化一次……
a707000646 2011-02-19
  • 打赏
  • 举报
回复
楼上的说得对
超出作用域的值会被初始化
bdmh 2011-02-19
  • 打赏
  • 举报
回复
楼上说的是,内部声明,每次循环完毕都要初始化,而外部,不会,导致你循环处错误
無_1024 2011-02-19
  • 打赏
  • 举报
回复
需要在每一个循环前面初始化
#include <iostream>
using namespace std;
int main()
{
int cock=1;//在这里定义并初始化,运行正常但没结果
for(;cock <=13;cock++)
{
int hen=1;
for(;hen <=18;hen++)
{
int chick=3;
for(;chick <=96;chick++)
{
if(cock*7+5*hen+chick/3==100&&cock+hen+chick==100&&chick%3==0)
cout <<"cock=" <<cock <<",hen=" <<hen <<",chick=" <<chick <<endl;
}
}
}
return 0;
}
無_1024 2011-02-19
  • 打赏
  • 举报
回复
最里层的for循环在外层循环每一次执行的时候都要初始化啊
無_1024 2011-02-19
  • 打赏
  • 举报
回复
当然啊 搞清楚for嵌套循环是怎么执行的啊 执行次数是一个乘法 不是一个加法

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧