C语言程序中有个错误找了半天不知道该怎么改~~~~~求解~~~~~~~下面是程序的图片

2025-06-29 14:38:07
推荐回答(3个)
回答1:

这是一个警告错误,不影响编译执行。
因为在VC6下,默认的浮点数类型是双精度double类型,因此中间运算会使用double,而接收是使用了一个float 的变量C

回答2:

这个warning可能影响精度。
涉及计算机组成原理了,计算机存储方式为二进制,占4字节。转化为十进制后自然有的数字表达不了。
另外,一般不推荐用float,精度差是一方面,另一方面是在c++中小数(如0.1)是默认为double的,你不可以这样子:float x=78.6;编译会报错,warning C4305: 'initializing' : truncation from 'const double ' to 'float '
原因:
在C/C++中,VC++和LINUX都是,上述语句等号右边78.6,我们以为它是个float,但是编译器却把它认为是个double(因为小数默认是double),所以要报这个warning。
打印出来你会发现x的值是 78.599998

把高精度的变量赋值给低精度的变量,可能会有精度丢失。

通常的做法,经常使用double,而不喜欢使用float。

回答3:

这个错误好像是说你在一个工程里面出现了两个main函数,重复了。把你后面的窗口关闭了,只打开这一个C文件再编译试试