三横艺术 发表于 2018-9-10 09:44:08

有关算数运算符问题

#include<stdio.h>
int main()
{
        int i,j;
        i=1+2.0;       
        printf("%f\n",1+2.0);
        printf("i=%f\n",i);
        printf("%d\n",1+2.0);
        printf("i=%d\n",i);
        return 0;
}
运算结果:
3.000000
i=0.000000
0
j=3

想问一下第一个printf和第二个printf为什么结果不一样,同理第三个和第四个。

BngThea 发表于 2018-9-10 09:45:32

因为数据类型不同,一个是int,一个是float

shuofxz 发表于 2018-9-10 09:54:03

int类型只能用%d输出,%f不行
同理,float不能用%d
否则都会出问题

nsyg123 发表于 2018-9-10 12:11:14

类型不同。,转化过去会丢失数据的。新人我建议你换VS系列的编译器。提示很具体的,错多了你也知道是哪里错了

三横艺术 发表于 2018-9-10 13:28:00

shuofxz 发表于 2018-9-10 09:54
int类型只能用%d输出,%f不行
同理,float不能用%d
否则都会出问题

理解了 谢谢

三横艺术 发表于 2018-9-10 13:28:43

nsyg123 发表于 2018-9-10 12:11
类型不同。,转化过去会丢失数据的。新人我建议你换VS系列的编译器。提示很具体的,错多了你也知道是哪里错 ...

谢谢

三横艺术 发表于 2018-9-10 13:29:20

BngThea 发表于 2018-9-10 09:45
因为数据类型不同,一个是int,一个是float

谢谢
页: [1]
查看完整版本: 有关算数运算符问题