C语言中用scanf输入双精度浮点数

#include<stdio.h>#include<math.h>intmain(void){doublex;scanf("%f",&x);printf("x=%f\n"... #include <stdio.h>
#include <math.h>

int main( void )
{
double x;
scanf("%f",&x);
printf( "x= %f\n",x );

return 0;
}

输入900.0
输出x= -92559605216228108000000000000000000000000000000000000000000000.000000

把double改成float
输入900.0
输出x= 900.000000

这是为什么
展开
 我来答
小夏聊生活
高能答主

2019-12-05 · 专注于分享生活知识,热爱生活
小夏聊生活
采纳数:447 获赞数:114558

向TA提问 私信TA
展开全部

C语言中用scanf输入双精度浮点数的源代码如下

#include <stdio.h>

#include <stdlib.h>

int main()

{

int n, *a, i;

printf("请输入数组长度:");

scanf("%d", &n);

a = malloc(sizeof(int) * n); /*分配内存*/

printf("请输入%d个数:\n", n);

for(i = 0; i < n; i++)

scanf("%d", a + i);

printf("您输入的数是:\n");

for(i = 0; i < n; i++)

printf("%d ", a[i]);

free(a); /*释放内存*/

return 0;

}

扩展资料

1、scanf()函数开始每次读取一个输入字符,它跳过空白字符直到遇到一个非空白字符。因为它试图读取一个整数,所以scanf()期望发现一个数字字符或者一个符号(+或-)。

2、如它发现了一个数字或一个符号,那么它就保存之并读取下一个字符。scanf()持续读取和保存字符直到它遇到一个非数字的字符。如遇到了一个非数字的字符,它就得出结论,它已经讲到了整数的尾部。

3、scanf()把这个非数字字符放回输入。这就意味着程序下一次开始读取输入时,它将从前面被放弃的那个非数字字符开始。最后,scanf()计算它读取到的数字的相应数值,并将该值放到指定的变量中。

沧海雄风2009
推荐于2018-02-24 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8525
采纳率:79%
帮助的人:2505万
展开全部
double 输出需要用 %lf

你这个是相当于把double强制转换成 float了

float明显放不下 溢出了 所以出错

有疑问请追问 满意记得采纳
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2016-01-07 · TA获得超过1040个赞
知道小有建树答主
回答量:527
采纳率:87%
帮助的人:71万
展开全部
%f是但进度浮点数的格式双精度浮点数应用%lf,改一下就行了

因为double是8个字节的,float是4个字节的,%f 的格式就是4个字节的,而 %lf 就是8个字节的

#include <stdio.h>#include <math.h>int main( void ){ double x; scanf("%lf",&x); //输入double型
float x;
scanf("%f", &x)
return 0;}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风流沼
2011-09-22 · TA获得超过142个赞
知道小有建树答主
回答量:108
采纳率:0%
帮助的人:89.1万
展开全部
%f是但进度浮点数的格式双精度浮点数应用%lf,改一下就行了

#include <stdio.h>
#include <math.h>

int main( void )
{
double x;
scanf("%lf",&x);
printf( "x= %lf\n",x );

return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
terranlong
2011-09-22 · TA获得超过7292个赞
知道大有可为答主
回答量:2660
采纳率:0%
帮助的人:3833万
展开全部
因为double是8个字节的,float是4个字节的,%f 的格式就是4个字节的,而 %lf 就是8个字节的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式