При печати массивов в C некоторые числа печатаются как 0,00 - PullRequest
0 голосов
/ 29 апреля 2020

Этот код запрашивает 10 простых значений для создания массива, а затем печатает их. scanf правильно, вы можете ввести 10 значений в обычном режиме.

Проблема заключается в том, что при печати каждое отдельное значение от 1 до 10 печатается, как и ожидалось, а значения 7 и 8 печатаются как 0,00 , Я подумал, что может быть, что для l oop не работает правильно, но другие цифры печатаются просто отлично.

Кто-нибудь знает в чем проблема? Почему только 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;
}

1 Ответ

1 голос
/ 29 апреля 2020

Просто смешайте ...
При создании float values[index]; index неинициализируется, что приводит к неопределенному поведению .

Изменить это:

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

На это:

int index;
int size = 10;
float values[size];
              ^
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...