标题:请教这个程序的问题
只看楼主
星守
Rank: 2
等 级:论坛游民
帖 子:15
专家分:10
注 册:2016-3-4
结帖率:100%
已结贴  问题点数:20 回复次数:5 
请教这个程序的问题
# include<stdio.h>
 void main()
 {
     int a;
    printf("请输入一个小写字母:\n");
    scanf("%c",&a);
    printf("字母的十六进制数为:%x\n",a);
    printf("字母的八进制数为:%o\n",a);
    printf("字母的十进制数为:%u\n",a);
    printf("字母的字符形式是:%c\n",a);
 }
VC6++编译,可以运行,为什么八进制,十六进制和十进制是错误的?谢谢
搜索更多相关主题的帖子: 十六进制 include 八进制 十进制 
2016-03-18 16:51
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
得分:5 
这是之前有人问过的问题,使用int指针指向char类型的地址,高位就是默认值,你可以看到cccccc61,实际上有用的只是61
2016-03-18 16:59
星守
Rank: 2
等 级:论坛游民
帖 子:15
专家分:10
注 册:2016-3-4
得分:0 
回复 2楼 grmmylbs
能把以前问过的地址给我么?谢谢
2016-03-18 17:01
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
得分:15 
你首先应该初始化a=0。
因为%c的输入只能改变一个字节的值,未初始化的高位字节的值就不明确了。

能编个毛线衣吗?
2016-03-18 17:02
星守
Rank: 2
等 级:论坛游民
帖 子:15
专家分:10
注 册:2016-3-4
得分:0 
回复 4楼 wmf2014
谢谢,问题已解决。
2016-03-18 17:08
星行星际
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2016-1-6
得分:0 
回复 4楼 wmf2014
为什么我初始化a=0和不初始的结果会一样呢?
还是想不明白要初始化的原理,求指教.
我用codeblocks
2016-03-18 18:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-462637-1-1.html




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

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