(C语言)啥?4除以2等于0?

输入和输出格式说明符一定要对!

公众号:C语言编程技术分享

一、先找茬儿

有这么个练习,说是让你输入两个数字,再计算它们的商并输出,看起来很简单是不,我是这么写的,如下:

#include <stdio.h>

int main()
{
	double v1, v2, v3;
	
	printf("请输入两个小数: ");
	scanf("%d,%d", &v1, &v2);
	v3 = v1 / v2;
	
	printf("v3的值是: %d\n", v3);
	system("pause");
	
    return 0;
}

来,运行一把,如下:

呦呵,这咋回事儿,我输入俩数字4和2,两数相除商是0?小伙伴们先来找找茬儿,看看哪里错了?

二、茬儿解析

变量v1和v2的类型是double,使用scanf函数读入两数的值的时候,格式说明符用的是“%d”,这可是要读入int类型的意思啊!

然后输出商的时候,printf函数格式说明符用的也是“%d”,这是要输出int类型的数据啊?

这么一搞,变量v1,v2,v3的精度都大大损失,不是0才怪!

三、修正茬儿

只要把输入和输出的类型改过来就可以啦,小伙伴们可以自己试试。有问题可以留言哦! 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C语言答疑课堂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值