| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 579 人关注过本帖
标题:用C-Free 5.0,为什么两个整形变量short与int的区别就这么大
只看楼主 加入收藏
覃贤文
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-3-21
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:13 
用C-Free 5.0,为什么两个整形变量short与int的区别就这么大
#include <stdio.h>
int main(int argc, char *argv[])
{
    int x,y;
    scanf("%d%d",&x,&y);
    printf("%d,%d\n",x,y);
    return 0;
}
(运行后输入没内容如下:)
12 12(回车)
(结果输出如下)
12,12
 

#include <stdio.h>
int main(int argc, char *argv[])
{
    short x,y;
    scanf("%d%d",&x,&y);
    printf("%d,%d\n",x,y);
    return 0;
}
(运行后输入如下:)
12 12(回车)
(结果输出如下)
0,12
搜索更多相关主题的帖子: return include 
2015-04-04 19:18
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:7 
我这里是正常的

C-Free带的GCC版本可能有点老了
2015-04-04 20:43
覃贤文
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-3-21
收藏
得分:0 
回复 2楼 zklhp
如果是版本老,不同版本之间的不同原因有出现在什么方面?这两个程序在Dve C++ 5.9.2上输入
12 12(回车)
(都输出)0,12
2015-04-04 21:24
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:7 
可能与计算机的数据存储方式有关吧

一片落叶掉进了回忆的流年。
2015-04-04 21:26
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:0 
vc++6.0上是12,12

一片落叶掉进了回忆的流年。
2015-04-04 21:41
覃贤文
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-3-21
收藏
得分:0 
#include <stdio.h>
int main(int argc, char *argv[])
{

    short x,y,z,a,b,c;
    scanf("%d%d%d%d%d%d",&x,&y,&z,&a,&b,&c);
    printf("%d,%d,%d,%d,%d,%d\n",x,y,z,a,b,c);
    return 0;
}
输入12 12 12 12 12 12(回车)
输出(0,0,0,0,0,12)



#include <stdio.h>
int main(int argc, char *argv[])
{

    short x,y,z,a,b,c;
    scanf("%d,%d,%d,%d,%d,%d",&x,&y,&z,&a,&b,&c);
    printf("%d,%d,%d,%d,%d,%d\n",x,y,z,a,b,c);
    return 0;
}
输入12,12,12,12,12,12(回车)
输出(0,0,0,0,0,12)


#include <stdio.h>
int main(int argc, char *argv[])
{

    int x,y,z,a,b,c;
    scanf("%d,%d,%d,%d,%d,%d",&x,&y,&z,&a,&b,&c);
    printf("%d,%d,%d,%d,%d,%d\n",x,y,z,a,b,c);
    return 0;
}
输入12 12 12 12 12 12(回车)
输出(12,12,12,12,12,12)

其他软件的输出则正常                   这是什么问题(C-Free 5.0)
2015-04-04 21:46
覃贤文
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-3-21
收藏
得分:0 
回复 5楼 诸葛欧阳
嗯,如果VC++6.0这样,现在就变成了软件之间的问题了
2015-04-04 21:50
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:0 
你把%d换成%hd试试

一片落叶掉进了回忆的流年。
2015-04-04 21:56
覃贤文
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2015-3-21
收藏
得分:0 
回复 8楼 诸葛欧阳
#include <stdio.h>
int main(int argc, char *argv[])
{

    int x,y,z,a,b,c;
    scanf("%hd%hd%hd%hd%hd%hd",&x,&y,&z,&a,&b,&c);
    printf("%d,%d,%d,%d,%d,%d\n",x,y,z,a,b,c);
    return 0;
}
输入12 12 12 12 12 12回车
输出12,12,12,12,12,12
 

可是把变量类型从int改为short
相同的输入就变成了六个奇怪的数


%hd是什么意思?
2015-04-04 22:21
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:0 
是短整型,你把输入输出的都改一下

一片落叶掉进了回忆的流年。
2015-04-04 22:24
快速回复:用C-Free 5.0,为什么两个整形变量short与int的区别就这么大
数据加载中...
 
   



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

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