superxsw 发表于 2015-8-16 11:29:59

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

warning C4244: '=' : conversion from 'double ' to 'int ', possible loss of data
为什么我编写代码总有这个警告,明明跟书里写的完全一样,这个警告怎么解决?

superxsw 发表于 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;
}

哥斯拉不说话 发表于 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 型 变量来接收。

superxsw 发表于 2015-8-16 17:02:51

哥斯拉不说话 发表于 2015-8-16 12:39
warning C4244: '=' : conversion from 'double ' to 'int ', possible loss of data
的意思是:从 double ...

那应该怎样改?

哥斯拉不说话 发表于 2015-8-16 17:48:01

把 k 定义成 double 型,打印的时候用 %lf 打印。
页: [1]
查看完整版本: 为什么我编写代码总有这个警告,明明跟书里写的完全一样,为什么会有警告?