懂C语言的进来?

为什么把char改成int后,在下面的printf(%f%f%f%f还能显示出翻译后的密码,但是加了%d%d%d%d后就显示出一堆数字,这些数字是什么意思啊?有什么含义?... 为什么把char改成int后,在下面的printf(%f%f%f%f还能显示出翻译后的密码,但是加了%d%d%d%d后就显示出一堆数字,这些数字是什么意思啊?有什么含义?)
图一问题
图二运行结果
图三代码
展开
 我来答
参观西湖
2021-01-28 · 古籍有很多,写出来一起欣赏。
参观西湖
采纳数:919 获赞数:2301

向TA提问 私信TA
展开全部

printf要求前面的格式字符串里面的数量,与后面的变量数量一致。

比如现在前面有5个%c,5个%d,一共10个,而后面只是提供5个变量,这种情况,在正常输出5个%c以后,编译器会打印出5个不确定的值以对应后面5个%d

所以就出现了一串奇怪的数字。

-------------

如果需要查看多种显示,可以这样:

%d连续输出,需要指定符号(比如空格)分割,否则就连在一起了。

--------------------

char改成int以后,或不改,都不影响结果。

char虽然是字符型,但是可以与int一起参与运算的。

而显示为字符,还是字符对应的ascii码,依赖于输出时的格式指定。%c就显示字符,%d就显示字符对应的ascii码,比如大写字母'G',其ascii码就是71

天道酬勤114
2021-01-28
知道答主
回答量:70
采纳率:16%
帮助的人:4.7万
展开全部
这个题考察对计算机数据类型的转换和理解。char是字符型 int是整型,仔细看下书上的讲解就理解了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
七擒关羽
2021-01-28 · TA获得超过114个赞
知道小有建树答主
回答量:491
采纳率:70%
帮助的人:64.2万
展开全部
需要了解%c与%d的意义
%c是输出ACSII码,%d是输出整形值
当一个变量输出会按照对应格式进行转换的,不会出现乱码,除非出现超出ACSII码能转换的数值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式