| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1982 人关注过本帖
标题:大一新生,这有道题不理解,求各位大哥帮忙看看为什么输出结果是383738
只看楼主 加入收藏
飞翔的芝麻
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2018-11-4
结帖率:0
收藏
已结贴  问题点数:20 回复次数:8 
大一新生,这有道题不理解,求各位大哥帮忙看看为什么输出结果是383738
#include<stdio.h>

main()
{
    int a;
   
    scanf("%d",&a);
    if(a>50)
    {
        printf("%d",a);
    }
    if(a>40)
    {
        printf("%d",++a);
    }
    else
    {
        printf("%d",a--);
    }
    if(a>30)
    {
        printf("%d",a++);
    }
    printf("%d",a);
}
搜索更多相关主题的帖子: 大一新生 大哥 输出 结果 printf 
2018-11-04 12:34
zbjzbj
Rank: 12Rank: 12Rank: 12
来 自:郑州
等 级:贵宾
威 望:52
帖 子:633
专家分:3045
注 册:2011-4-22
收藏
得分:3 
没毛病,可能你晕的是38 37 38长一块了
2018-11-04 13:13
adssc
Rank: 2
等 级:论坛游民
威 望:1
帖 子:61
专家分:32
注 册:2018-4-20
收藏
得分:3 
%d後面+空格
2018-11-04 13:15
飞翔的芝麻
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2018-11-4
收藏
得分:0 
回复 楼主 飞翔的芝麻
大神问下这原理是什么?我看的都是3738,前面多出了一个38是为什么呢?
2018-11-04 13:19
Tomorrw_I
Rank: 10Rank: 10Rank: 10
等 级:禁止访问
威 望:6
帖 子:406
专家分:1712
注 册:2018-10-16
收藏
得分:3 
#include<stdio.h>

main()
{
    int a;
   
    scanf("%d",&a);     输入38
    if(a>50)
    {
        printf("%d",a);   38小于50 跳过这条语句
    }
    if(a>40)               
    {
        printf("%d",++a);    38小于40  跳过
    }
    else
    {
        printf("%d",a--);      38小于40  输出38   然后a-1   a变为37
    }
    if(a>30)
    {
        printf("%d",a++);     37大于30    输出37    a+1,  a变成38
    }
    printf("%d",a);            输出38
}

你这代码,写的啥啊!  你应该输的是38吧!
自己代码,要求输出的就是这样!     你这判断逻辑,不懂,你要做啥

学C有用吗?
学C++有前途吗?
数据库有必要学吗?
……
别问,你还什么都不会,学就对了
……
2018-11-04 14:17
豆豆的滴
Rank: 9Rank: 9Rank: 9
来 自:湖南
等 级:贵宾
威 望:33
帖 子:368
专家分:1087
注 册:2018-5-7
收藏
得分:3 
其实我还没看懂
2018-11-04 15:20
七星。。。。
Rank: 1
等 级:新手上路
帖 子:2
专家分:8
注 册:2018-11-3
收藏
得分:3 
疼的脑瓜疼,没找到
2018-11-04 20:54
一枚小白了
Rank: 1
等 级:新手上路
帖 子:7
专家分:7
注 册:2018-10-27
收藏
得分:3 
你这是空格的问题,代码思路没错,我给你说两种解决办法,
第一种:加空格 【加几个空格中间就有几个空】
第二种:输出格式【%3d】数字代表空格数
2018-11-05 10:38
C基础
Rank: 6Rank: 6
等 级:侠之大者
威 望:6
帖 子:133
专家分:421
注 册:2018-10-15
收藏
得分:3 
其实我想你的主要问题还是没明白a++是什么意思,a++是先用a然后让a加1,比如说int a=1;printf(“%d”,a++);这个时候书出来的结果是1,不是2.我想你输入的应该是38,输入38以后,第一条if语句是不执行的,在第二条语句中会执行else,这个时候根据我上面说的,printf("%d",a--);这条语句输出来的是38,这条语句执行过后a就变成了37然后进入第三个if语句判断37大于30满足条件,这个时候printf("%d",a++);这条语句输出来的是结果是37,这条语句执行过后a就会加1然后最后一条语句输出a,也就是38,至于输出是连续的我想就不用说了吧,因为你没有加转义字符,我是用手机逛论坛的,所以输入比较麻烦,这里就大概和你说下,如果不明白的话,你还可以回我,我详细和你说,其实printf(“%d”,a++);这条语句应该理解为是printf(“%d”,a);a++;这两条语句的复合,这样应该更好理解一些。希望对你有所帮助。
2018-11-05 12:18
快速回复:大一新生,这有道题不理解,求各位大哥帮忙看看为什么输出结果是38373 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.070851 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved