c - 在 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;
}
解决方案
只是一个简单的混合......
当您创建时float values[index];
index
未初始化,这会导致未定义的行为。
改变这个:
int index;
int size = 10;
float values[index];
^
对此:
int index;
int size = 10;
float values[size];
^
推荐阅读
- php - Drupal 7.xx - 我如何检查用户身份验证并允许访问与 Drupal 一起运行的自定义 Web 应用程序?
- r - 基于另一列的每个因子水平的比例数据框
- google-app-engine - 用户凭据的最佳存储选项(Google Cloud 生态系统)
- c - 如何在进行 scanf 时让第二个 printf 出现?
- java - JFrame 太小并且 pack() 似乎不起作用
- javascript - 首先将 React 组件编写为一个 HTML 文件然后将它们转换为组件会更好吗?
- java - 虽然循环不检查两个条件?
- java - 类型为 T 的 Java 参数化 JUnit
- html - 我如何在身体滚动时修复我的 sidenav
- python - 逐行张量乘法