return返回问题
发表在C语言图书答疑 2017-01-15
是否精华
版块置顶:

#include <iostream>

#include <iomanip>

using namespace std;

int fun(int array[3][3])

{

int i,j,t;

for(i=0;i<3;i++)                       //第一个for

for(j=0;j<i;j++)               //第二个for

{

t=array[i][j];

array[i][j]=array[j][i];

array[j][i]=t;

}

return 0;

}

void main()

{

int i,j;

int array[3][3]={{1,2,3},{4,5,6},{7,8,9}};

cout << "Converted Front" <<endl;

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

cout << setw(7) << array[i][j] ;

cout<< endl;

}

fun(array);

cout << "Converted result" <<endl;

for(i=0;i<3;i++)

{

for(j=0;j<3;j++)

cout << setw(7) << array[i][j] ;

cout<< endl;

}

}



上面这段代码中,粗体 return 0 和第二个for同级,不是第二个for循环执行完就跳出函数了吗?(我的意思就是第一个for循环只执行了一次并没有执行完)为什么输出结果还是将二维数组值交换了呢?



希望老师能帮我理解一下

分享到:
精彩评论 2
善进知退丶
学分:11 LV2
2017-01-15
沙发

这是一个将二维数组行列交换的代码

again
学分:250 LV4
2017-01-16
板凳

是否和for同级,要看语法,而不是看格式。

这段的语法是: for后面的内容,没有大括号,因此只能放一句代码, 即for后面的for属于外层for的循环体

。那句return,不属于外层for的循环体的内容。

如果把内层for和return 用大括号括起来,那这段的意思就如同您现在的理解一样了。

所以这段码的格式是:


1 - 副本.bmp

首页上一页 1 下一页尾页 2 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照