c语言自动转换
main(){doublenum1;intnum2,sum;num1=1;num2=2.5;sum=num1+num2;printf("num1+num2=%f\n",n...
main()
{
double num1;
int num2,sum;
num1=1;
num2=2.5;
sum=num1+num2;
printf("num1+num2=%f\n",num1+num2);
printf("sum=%d\n",sum);
}
这个输出结果是多少 是怎么转换的
书上num1+num2=3.500000,我怎么弄也是3.000000 展开
{
double num1;
int num2,sum;
num1=1;
num2=2.5;
sum=num1+num2;
printf("num1+num2=%f\n",num1+num2);
printf("sum=%d\n",sum);
}
这个输出结果是多少 是怎么转换的
书上num1+num2=3.500000,我怎么弄也是3.000000 展开
4个回答
展开全部
函数主体的解释:
1.声明一个双精度型数据 num1,
2.声明两个整型数据 num2,sum,
3.给单精度型变量num1赋值为1.000000(双精度型数值默认保留小数点后六位),
4.给整型变量num2赋值为2.5,在这里因为是将浮点数赋值给整型变量所以会将后面的小数部分丢掉而最终把2赋值给num2,
5.将变量num1和num2的值相加赋值给sum,这里是一个双精度型数值num1(1.000000)和一个整型数值num2(2)相加,编译器会把整型数值2向高一级转换为双精度型数值即2.000000,相加的结果为3.000000,最后将3.000000赋值给整型变量sum时,他会只去整数部分,小数部分丢掉,所以sum为0;
6.打印num1与num2的和,结果为:num1+num2=3.000000;
7.打印sum的值,结果为: 3,
在转换过程中,只有数值发生类型变化,该变量的类型是不变的。
书上有些错的
1.声明一个双精度型数据 num1,
2.声明两个整型数据 num2,sum,
3.给单精度型变量num1赋值为1.000000(双精度型数值默认保留小数点后六位),
4.给整型变量num2赋值为2.5,在这里因为是将浮点数赋值给整型变量所以会将后面的小数部分丢掉而最终把2赋值给num2,
5.将变量num1和num2的值相加赋值给sum,这里是一个双精度型数值num1(1.000000)和一个整型数值num2(2)相加,编译器会把整型数值2向高一级转换为双精度型数值即2.000000,相加的结果为3.000000,最后将3.000000赋值给整型变量sum时,他会只去整数部分,小数部分丢掉,所以sum为0;
6.打印num1与num2的和,结果为:num1+num2=3.000000;
7.打印sum的值,结果为: 3,
在转换过程中,只有数值发生类型变化,该变量的类型是不变的。
书上有些错的
AiPPT
2024-09-19 广告
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图...
点击进入详情页
本回答由AiPPT提供
展开全部
结果是 3.5
3
printf("num1+num2=%f\n",num1+num2)输出的是数据类型是%f(浮点型),所以是3.5
printf("sum=%d\n",sum)输出的数据类型是%d(整形),在计算机中3.5取整就是3了
希望 对你有帮助
3
printf("num1+num2=%f\n",num1+num2)输出的是数据类型是%f(浮点型),所以是3.5
printf("sum=%d\n",sum)输出的数据类型是%d(整形),在计算机中3.5取整就是3了
希望 对你有帮助
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我用MinGW 编译,在32位windows 机器上是正数, 你试试把 %1d 改成 %ld (LD)
我可以帮助你,你先设置我最佳答案后,我百度Hii教你。
我可以帮助你,你先设置我最佳答案后,我百度Hii教你。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我用MinGW 编译,在32位windows 机器上是正数, 你试试把 %1d 改成 %ld (LD)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询