鱼C论坛

 找回密码
 立即注册
查看: 1794|回复: 4

为什么我编写代码总有这个警告,明明跟书里写的完全一样,为什么会有警告?

[复制链接]
发表于 2015-8-16 11:29:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
warning C4244: '=' : conversion from 'double ' to 'int ', possible loss of data
为什么我编写代码总有这个警告,明明跟书里写的完全一样,这个警告怎么解决?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-8-16 11:32:23 | 显示全部楼层
#include <stdio.h>
#include <math.h>
#define M 1000
int main()
{
        int i,k;
        printf("请输入小于%d的整数i:",M)
        scanf("%d",&i);
        if(i>M)
        {
                printf("输入不符合要求,请重新输入一个小于%d的整数i",M);
                scanf("%d",&i);
        }
        k=sqrt(i);
        printf("%d的平方根的整数部分是%d\n",i,k);
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-8-16 12:39:26 | 显示全部楼层
本帖最后由 哥斯拉不说话 于 2015-8-16 12:51 编辑

warning C4244: '=' : conversion from 'double ' to 'int ', possible loss of data
的意思是:从 double 型 转化到 int 型,可能会丢失数据。
sqrt()会返回一个 double 型 数据,应该用一个 double 型 变量来接收。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-16 17:02:51 | 显示全部楼层
哥斯拉不说话 发表于 2015-8-16 12:39
warning C4244: '=' : conversion from 'double ' to 'int ', possible loss of data
的意思是:从 double ...

那应该怎样改?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-8-16 17:48:01 | 显示全部楼层
把 k 定义成 double 型,打印的时候用 %lf 打印。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 08:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表