首页 > 解决方案 > 在 C 中打印数组时,一些数字打印为 0.00

问题描述

这段代码要求 10 个简单的值来创建一个数组,然后打印它们。scanf是正确的,您可以正常输入10个值。

问题是,在打印时,从 1 到 10 的每个值都按预期打印,但 7 和 8 值打印为 0.00。我认为可能是 for 循环运行不正确,但其他数字打印得很好。

有谁知道是什么问题?为什么只有 7 和 8?我可以使用相同的结构修复它吗?感谢帮助,我是新手。这就是我所拥有的:

#include<stdio.h>
int main()
{
    int index;
    int size = 10;
    float values[index];
    for (index=0; index < size; index++)
    {
        printf("\nEnter value[%1d]: ",index+1);
        scanf("%f",&values[index]);
    }
    for(index=0; index < size; index++)
    {
        printf("\nvalue[%1d]= ", index+1);
        printf("%.2f", values[index]);  
    }
    return 0;
}

标签: carraysprinting

解决方案


只是一个简单的混合......
当您创建时float values[index]; index未初始化,这会导致未定义的行为

改变这个:

int index;
int size = 10;
float values[index];
               ^

对此:

int index;
int size = 10;
float values[size];
              ^

推荐阅读