输出双数组,C中意外的输出数字

Outputing a double array, unexpected output numbers in C

我尝试在 C 中打印一个数组,但输出与数组中的数字不匹配。我刚开始学习 C,所以这可能是一个非常愚蠢的错误,但我会很感激一个解决方案。

int main() {
double arr[] = {1,0.2,
                0.3,0.4,0.5,
                0.6,0.7};
for(int i =0; i<7;i++){
    printf("%d ",arr[i]);
}return 0;}

输出:0 -1717986918 858993459 -1717986918 0 858993459 1717986918

%d 格式说明符(以及 %i)用于打印十进制的 int,而不是 double

您想改用 %f

printf("%f ",arr[i]);

输出:

1.000000 0.200000 0.300000 0.400000 0.500000 0.600000 0.700000