A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 离渊 中级黑马   /  2014-3-18 17:27  /  1957 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 离渊 于 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
但为什么输出来 不是这样子  还是跟正确输出的一样呢?

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

5 个回复

倒序浏览
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
在循环和判断语句中,如果只有一句执行的,可以去掉括号,如果执行语句多于一条则需要括号,所以那对括号可 ...

可是这是两句都执行的啊
回复 使用道具 举报
如果你没加括号,默认循环只会执行一句,另一句就在循环体外,所以一句可以不加,2句或者以上必须加
回复 使用道具 举报
这个要学习一点编译的知识;在运行c程序必须进行编译程序,就要先进行语法分析,语义分析;当有一条语句的时候编译器会自动的,默认认为执行一条语句;需要进行两条以上的语句执行,必须使用“{}”;设计编译原理的永动机知识。理解要点:一条语句默认有“{}”;两条以上不能省略;必须用”{}“。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马