【问题标题】:When printing Arrays in C some numbers print as 0.00在 C 中打印数组时,一些数字打印为 0.00
【发布时间】:2020-04-29 20:29:24
【问题描述】:

此代码要求 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;
}

【问题讨论】:

  • index 在定义values 时未初始化:float values[index];。你的意思是用 size 代替 float values[size];
  • 你用索引而不是大小来初始化值数组。

标签: c arrays printing


【解决方案1】:

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

改变这个:

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

到这里:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-25
    • 1970-01-01
    • 2013-09-23
    • 1970-01-01
    • 2019-02-22
    • 1970-01-01
    • 2014-05-20
    • 1970-01-01
    相关资源
    最近更新 更多