Почему выходит мусор?

88
01 ноября 2021, 06:30

Вводить с клавиатуры целые числа. Условие окончания ввода  число 0. Найти среди этих чисел наименьшее (0 не считать наименьшим).

#include <iostream>
using namespace std;
int main()
{
    setlocale(LC_ALL, "ukr");
    const int x = 10;
    int i = 0;
    int Arr[x];
    for (i; i < x; i++)
    {
        cin >> Arr[i];
        if (Arr[i] == 0)
        {
            break;
        }
    }
    int min = Arr[0];
    for (i = 1; i < x; i++)
    {
        if (Arr[i] < min)
        {
            min = Arr[i];
        }
    }
    cout << min << " наименьшее число в массиве" << endl;
}
Answer 1

Поскольку массив int Arr[x] вы не инициализируете, в нем изначально хранится мусор. Далее вы в массив записываете значения, но, допустим, 5 записали и последующим 0-ём ввод закончился. Соответственно, у вас первые 5 элементов ok, а в остальных так и остаётся мусор. Далее вы ищите минимум по всем элементам массива из введенных 5-ти элементов и мусора в остальных элементах и где-то среди мусора находится это наименьшее число, которое вам выводится.

READ ALSO
Помогите решить олимпиадную задачу по информатике

Помогите решить олимпиадную задачу по информатике

Условие : Дано массив чиселЗа один ход разрешается вычеркнуть любую последовательность одинаковых цифр, идущих подряд

77
Наследование значений С++

Наследование значений С++

Я не совсем понимаю как работает наследование

70
c++ algorithm что то пошло не так

c++ algorithm что то пошло не так

написал вроде все правильно, но не работает

105
Как в Web Socket передать сообщение с custom name

Как в Web Socket передать сообщение с custom name

Подскажите пожалуйстаУ меня есть серверная и клиентская часть написанная на Web Socket

124