同时使用温控功能,这是我已经定义内scanf的,到我已通过全球化志愿服务青年传递给该函数不改变的值在所有的阵列内变化的值,而被双重型。
当我的占位改变来自:scanf函数(“%1F”,&X)以scanf函数(“%d”,&X)它正常工作,但我需要用双打这个项目。
int main()
{
double varArray[MAX];
zeroFill(varArray);
}
void fill(double *array) {
for(int i =0; i<MAX; i++){
printf("what is index %d?\n", i);
scanf("%f",(array+i));
printf("%f \n", *(array+i));
}
代替它,它改变为0.000000或jiberish数目该索引处改变值:
what is index 0?
1
0.000000
what is index 1?
2
0.000000
what is index 2?
3
-0.000000
what is index 3?
4
0.000000
what is index 4?
5
0.000000
what is index 5?
6
0.000000
what is index 6?
7
182043948477041810000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000
所以对于输入3和7已经返回-0.000000和一个V大的数字。然而,这并不一致,这样其他的投入将给类似输出
要编写scanf
到double
的结果,使用%lf
。 %f
是float
。
不要用%d
使用double
。 %d
是int
。
(打印时,无论是%lf
或%f
可以用于无论是float
或double
,这是因为主叫float
时,或调用在其中的参数对应的参数,以double
或任何功能时printf
值被自动提升到...
值声明没有原型的任何功能。)