一道c++题望各位大侠帮下忙

来源:百度知道 编辑:UC知道 时间:2024/06/12 02:26:29
123
456
789
for(int i=1;i<=3;i++)

{

for(int j=i;j<=i+3;j++)

{

cout << j;

}

cout << endl;

}

可不可以一步步解释,我是菜中之菜鸟
为什么结果不是123
234
456 呢? 我不明白第二行同第三行是怎得出来的?
那么123
456
789 应该怎写?

for(int i=1;i<=3;i++)//i是从1到3的循环,控制最外层的循环循环3次;
{
for(int j=i;j<=i+3;j++) //j是从i到i+3的循环,控制着内层循环循环4次;j的值分别是i,i+1,i+2,i+3(这里的i根据外层循环分别取1,2,3)
{
cout << j; //输出j的值,总共会输出12个j的值,因为总共循环了3X4=12次;
}
cout << endl; //在内层循环结束后会输出一个空行,也就是把12个j的值四个四个的给分开;
}

输出结果是
1234
2345
3456

按照你说的要输出那个的话应该这样写:
for(int i=1;i<=9;i++)

{
cout<<i;
if(i%3==0)
cout << endl;
}

建议楼主用VC++等集成开发工具,在第一个for处设置断点,将i,j放进观察窗口,一步步的跟踪程序,注意i,j的变化(变红色)。

调试程序是不可省略的过程,学会这个技术比单一知道这个程序的执行过程有用多了。