输入和输出格式说明符一定要对!
公众号:C语言编程技术分享
有这么个练习,说是让你输入两个数字,再计算它们的商并输出,看起来很简单是不,我是这么写的,如下:
- #include
-
- 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才怪!
只要把输入和输出的类型改过来就可以啦,小伙伴们可以自己试试。有问题可以留言哦!