如果你知道 恳请告诉我 在此说声3Q

AC522066863 2013-04-26 10:29:46
1:for(i=0;i<N;i++)
for(j=0;j<N;j++)
scanf("%d",&array[i][j]);
printf("\norignial array :\n");


2:for(i=0;i<N;i++)
{for(j=0;j<N;j++)
printf("%5d",array[i][j]);
printf("\n");
}

我想问的就是上面两组for中,第一组第一个for后面没有加大括号;第二组第一个for后面加了大括号,有啥区别吗?求好心人扫盲................
...全文
238 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
AC522066863 2013-04-26
  • 打赏
  • 举报
回复
谢谢大家的不宁赐教
wdxgdiy 2013-04-26
  • 打赏
  • 举报
回复
引用 2 楼 mymtom 的回复:
当然有区别。 1. printf("\norignial array :\n"); 会执行一次。 2. printf("\n"); 会执行N * N次。
正解
mymtom 2013-04-26
  • 打赏
  • 举报
回复
当然有区别。 1. printf("\norignial array :\n"); 会执行一次。 2. printf("\n"); 会执行N * N次。
starytx 2013-04-26
  • 打赏
  • 举报
回复
第一组那个printf不在for循环内; 第二组,第二行那个printf不在里边那个for循环内,括号是作用范围,看看基本语法吧
14号选手 2013-04-26
  • 打赏
  • 举报
回复
也就是循环体的不同而已 第一个例子里面,是在第二个for循环的后面一条语句有分号,也就是只有这么一句是前面for循环的循环体 第二个例子,打了大括号的都是循环体 其实也就是复合语句和独立语句的区别罢了
wyj364905822 2013-04-26
  • 打赏
  • 举报
回复
引用 2 楼 mymtom 的回复:
当然有区别。 1. printf("\norignial array :\n"); 会执行一次。 2. printf("\n"); 会执行N * N次。
正解
pathuang68 2013-04-26
  • 打赏
  • 举报
回复
先找本书,熟悉一下基本的语法规则
AndyStevens 2013-04-26
  • 打赏
  • 举报
回复
我帮你把括号加上 你看看区别吧, 1.
for(i=0;i<N;i++){
    for(j=0;j<N;j++){
       scanf("%d",&array[i][j]);
    }
 }
printf("\norignial array :\n");
2.
for(i=0;i<N;i++){
    for(j=0;j<N;j++){
    printf("%5d",array[i][j]);
    }
    printf("\n");
 }
赵4老师 2013-04-26
  • 打赏
  • 举报
回复
是骡子是马还不得拉出来遛遛?
赵4老师 2013-04-26
  • 打赏
  • 举报
回复
不要迷信书、考题、老师、回帖; 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实! 有人说一套做一套,你相信他说的还是相信他做的? 其实严格来说这个世界上古往今来所有人都是说一套做一套,不是吗? 不要写连自己也预测不了结果的代码!
一桶姜山 2013-04-26
  • 打赏
  • 举报
回复
引用 6 楼 zhao4zhong1 的回复:
代码功能不是被人看出来的;而是被单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中分析出来的。
赵老师你这就有点矫情了,复杂的代码需要分析,像楼主说的这种简单的看看就知道了啊,还是1楼说的对,楼主目前需要的不是学会如何分析代码的功能,而是要看看基本语法
hugett 2013-04-26
  • 打赏
  • 举报
回复
第一个scanf("%d",&array[i][j]);执行N^2次, printf("\norignial array :\n");执行一次 第二个的printf("%5d",array[i][j]);执行N^2次,printf("\n");执行N次。。
shiter 2013-04-26
  • 打赏
  • 举报
回复
引用 9 楼 AC522066863 的回复:
高手在民间 果然有道理 谢谢大家 其实我觉得第二个也是执行了N次 不该是N*N 次吧 欢迎批评 更正
意思对这呢。。。
AC522066863 2013-04-26
  • 打赏
  • 举报
回复
高手在民间 果然有道理 谢谢大家 其实我觉得第二个也是执行了N次 不该是N*N 次吧 欢迎批评 更正
winassembly 2013-04-26
  • 打赏
  • 举报
回复
因为内层循环没有加大括号,其循环体到第一个分号处结束,printf("\n")不属于内层循环语句的循环体,所以当内层循环执行完后才执行printf("\n")语句,故而printf("\n")语句应该执行N次。
winassembly 2013-04-26
  • 打赏
  • 举报
回复
引用 2 楼 mymtom 的回复:
当然有区别。 1. printf("\norignial array :\n"); 会执行一次。 2. printf("\n"); 会执行N * N次。
第2个的printf("\n"); 应该是执行N次吧!
赵4老师 2013-04-26
  • 打赏
  • 举报
回复
代码功能不是被人看出来的;而是被单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中分析出来的。
空的 2013-04-26
  • 打赏
  • 举报
回复
不加大括号,for的操作会找到后面第一个";"前面 ----猜的
Ainan 2013-04-26
  • 打赏
  • 举报
回复
楼上的几个人说的都对。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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