看看这个简单的程序

来源:百度知道 编辑:UC知道 时间:2024/05/28 08:52:10
#include<stdio.h>
#include<math.h>
main()
{
double x[1];
scanf("%f",&x[0]);

printf("%f",x[0]);
}
为什么输出的是0?
我用的是c-free
为什么要加上l?可以加分
3L你确定你真的看了我的问题吗?

格式控制符不正确
double型数对应的格式控制符是lf
f是float型的格式控制符

scanf("%lf",&x[0]);
printf("%lf",x[0]);
就可以了,因为你定义的是 double 不是float

什么什么? 什么输出的是 0? 不可能输出0的好不好, %f 输出的格式是带六位小数的浮点数, 怎么可能是 0? 要是也是 0.000000 。

你的问题是想问, 为什么定义里是 x[1] 而下面的输入输出是 x[0]吧? 这是因为C语言的数组下标是以 0 开始的, 所以数组 x[1]只有一个元素就是x[0]。 后面的 1、0没啥用,至少对这个程序而言。。。 这是基本问题,建议楼主看看参考书,比如谭浩强的《c语言程序设计》。