一个自学C语言的初学者的问题

2024年11月30日 07:43
有3个网友回答
网友(1):

%f用于显示实型数据,如上面的float型,整型和实型在计算机中都有表示范围的,float型表示范围是10的-37次方到10的38次方,%d用于显示整型数据,如int型,它在计算机中的表示范围是-32768-32767。在输出时,将%f改成%d,系统就会按整型输出,术语叫做自动转换,如果float数据的大小在int范围内,系统就会将这个数后面的小数舍弃,直接输出它的整数,如果超出了int的范围,会发生数据溢出,系统不会检查这个数是否溢出,它输出的将是一个随机数。上面的float型明显已超出了int型的范围,所以编译系统输出的是一个随机数0.

网友(2):

我想说明的是:int型数值范围可能有不同,在turbo c++/c中,范围是-32768~32767,而在visual c/c++和dev c++(竞赛专用编译环境)中范围是-2147483648-2147483647(即long范围),如果您采用turbo编译系统,便可能出现上述情况,因float范围是-3.4*(10的-38次方)~3.4*(10的38次方),%f用来输出浮点型(仅限float)数据,%d用于输出整型数据,当用它输出浮点型数据时,将截取整数部分输出,若超出范围,则给出随机值。

网友(3):

你就说吧,提问者,人家回答这么的详细,你怎么没反映啊,不尊重别人的劳动成果.