【发布时间】:2011-07-07 02:30:43
【问题描述】:
我正在学习用 C 编程,我正在做一个练习,要求我编写一个程序来打印一个等腰三角形。
#include <stdio.h>
int main()
{
int col, row;
for(col = 0; col < 6; col++)
{
for(row = 0; row <= col; row++)
{
putchar('*');
putchar('\n');
}
}
}
此代码在一行上单独打印 (*) 21 次。因此,经过几分钟的反复试验,我删除了内部 for 循环上的内部大括号。
#include <stdio.h>
int main()
{
int col, row;
for(col = 0; col < 6; col++)
{
for(row = 0; row <= col; row++)
putchar('*');
putchar('\n');
}
}
我终于达到了我想要的结果。
所以我的问题是:内部 for 循环的内部大括号{} 如何影响结果的打印方式?为什么第一组代码在一行上也打印了 21 次 *?
我翻阅了我的书,找不到合理的解决方案来解释为什么内部 for 循环中的 { } 会影响输出。
【问题讨论】:
-
我正在阅读 2 本书 atm,K&R 第二版和 Sams 在 21 天内自学 C。你有什么推荐的?
-
@nastyn8 - 如果 K&R 不解释这一点(不能确定 - 没有副本),世界比我想象的要陌生得多。但是我可以相信,如果您还不知道自己做错了什么,那么查找起来并不容易。
-
K&R 是一个不错的选择,我相信会谈到这一点。我建议您更仔细地阅读带有解释的示例。
-
@steve314 好吧,我确定 K&R 会,而且我从来没有说过它没有提到它,但我一直主要关注 Sam 的 C,因为它是一本更容易理解的书,而我没有不要通过 K&R 寻找解决方案,当我说我正在“通过书本寻找解决方案”时,我专门谈到了 Sam 的自学 C,@Aaron 谢谢,我会放慢速度,慢慢来理解,我有时会很匆忙。
-
@nastyn8 对于大多数人来说,很难理解为什么有人可能不理解 {} 在这里的工作原理,因此如果您解释一下您认为他们在做什么会有所帮助。跨度>