发布网友 发布时间:2022-04-23 15:20
共5个回答
热心网友 时间:2023-10-06 05:41
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()计算它读取到的数字的相应数值,并将该值放到指定的变量中。
热心网友 时间:2023-10-06 05:41
double 输出需要用 %lf
你这个是相当于把double强制转换成 float了
float明显放不下 溢出了 所以出错
有疑问请追问 满意记得采纳
热心网友 时间:2023-10-06 05:42
%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;}
热心网友 时间:2023-10-06 05:42
%f是但进度浮点数的格式双精度浮点数应用%lf,改一下就行了
#include <stdio.h>
#include <math.h>
int main( void )
{
double x;
scanf("%lf",&x);
printf( "x= %lf\n",x );
return 0;
}
热心网友 时间:2023-10-06 05:43
因为double是8个字节的,float是4个字节的,%f 的格式就是4个字节的,而 %lf 就是8个字节的