黑马程序员技术交流社区
标题:
求解一个for循环的问题
[打印本页]
作者:
离渊
时间:
2014-3-18 17:27
标题:
求解一个for循环的问题
本帖最后由 离渊 于 2014-3-20 14:58 编辑
/*
题目:提示用户输入一个小于10的正整数n,如果n是5,就输出下列图形,其他n值以此类推
1
22
333
4444
55555
*/
#include <stdio.h>
int main()
{
int n = 0;
while (n >= 10 || n <= 0) {
printf("输入一个小于10的正整数\n");
scanf("%d",&n);
}
for (int a = 1; a<=n; a++) {
for (int b = 1;b <=a;b++)
{
printf("%d",a);
}
printf("\n");
}
return 0;
}
这个是正确的写法 我写的时候 漏写printf换行前面 我标红的大括号 但结果r仍是一样的
我想了下 如果漏掉那个括号 结果不应该是这样的么
1
2
2
3
3
3
4
4
4
4
但为什么输出来 不是这样子 还是跟正确输出的一样呢?
作者:
lixiangzhou
时间:
2014-3-18 17:33
for循环结束的标记并非只有{ },如果for循环后面只有一条语句的话,效果是一样的。
如:
for(int i = 0; i < 5; i++) //此处注意不要有;号
printf("hello");
与下面的是一样的效果
for(int i = 0; i < 5; i++)
{
printf("hello");
}
作者:
bubuatt
时间:
2014-3-18 17:34
在循环和判断语句中,如果只有一句执行的,可以去掉括号,如果执行语句多于一条则需要括号,所以那对括号可以去掉
作者:
离渊
时间:
2014-3-19 11:17
bubuatt 发表于 2014-3-18 17:34
在循环和判断语句中,如果只有一句执行的,可以去掉括号,如果执行语句多于一条则需要括号,所以那对括号可 ...
可是这是两句都执行的啊
作者:
bubuatt
时间:
2014-3-19 11:23
如果你没加括号,默认循环只会执行一句,另一句就在循环体外,所以一句可以不加,2句或者以上必须加
作者:
舒华
时间:
2014-3-19 14:28
这个要学习一点编译的知识;在运行c程序必须进行编译程序,就要先进行语法分析,语义分析;当有一条语句的时候编译器会自动的,默认认为执行一条语句;需要进行两条以上的语句执行,必须使用“{}”;设计编译原理的永动机知识。理解要点:一条语句默认有“{}”;两条以上不能省略;必须用”{}“。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2