%f为什么要和%c一起连用,中间没逗号

来源:2-5 格式化输出语句

外太空

2016-06-26 10:36

#include <stdio.h>

int main()

{

    int age = 18;

float height = 1.85;

char unit = 'm';

printf("小明今年%d岁\n", age);

printf("小明身高%f%c\n", height, unit);

printf("小明现在在慕课网上学习IT技术"); 

return 0;

}


写回答 关注

4回答

  • LinkLink
    2016-06-26 11:05:44
    已采纳

    有逗号的话会变成“小明身高1.85,m”。

    %f %c %d 等,都是输出的格式,float height=1.85,用%f的格式输出就是1.85,用%d的格式输出就变成了1。

    你可以试试 :

    int num=97;

    printf("%c",num);

    结果应该是'a'。


    或者试试:

    char letter='b';

    printf("%d",letter);

    结果为98。


    也就是说不管是char还是int ,其在内存中的储存形式是一样的。当你要把它们显示出来的时候就要给它们定一种格式,让它们以你指定的格式显示出来。

    或许你想问height已经定好了是float的格式,为什么在输出的时候还要再重申一次它是%f呢?

    我记得制订c标准的委员会那帮人对于c语言的精神有几条指导原则,第一条就是“相信程序员”。

    或许他们认为你会需要把float 类型的数据以int的形式显示,而不是你的一时疏忽把%f打成了%d。

    外太空

    非常感谢!

    2016-06-26 14:54:21

    共 1 条回复 >

  • 慕粉18790550707
    2016-06-26 11:09:20

    因为height输出的是一个浮点数,unit输出的是一个字符。

  • 慕粉3481550
    2016-06-26 11:08:58

    %f代指1.85这类小数%c代指"m”字符身高是由小数和字符两部分组成为一个整体不能用,断开

  • Altercc
    2016-06-26 11:07:09

    因为%f%c分别指的是后面的height和unit,至于为什么没有逗号,是因为%f%c是取值符号,例如如果height为168,unit为cm,输出的结果就是168cm,如果加了逗号就变为168,cm肯定不对吧,记住以后不用加就是了

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926287 学习 · 20799 问题

查看课程

相似问题