C++. Простая задача

124
22 апреля 2022, 03:30

Задача: Составить алгоритм увеличения всех трех, введённых с клавиатуры, переменных на 5,если среди них есть хотя бы две равные. В противном случае выдать ответ «равных нет».

Проблема: При вводе не равных чисел не срабатывает блок if(!equalnumshere)

P.S: Я знаю решение этой задачки без использование массивов, но я поставил себе цель решить эту задачу с использованием массива.

#include <iostream>
using std::cout;
using std::cin;
int main() {
    setlocale(LC_ALL, "ru");
    const int SIZE = 3;
    int arr[SIZE];
    bool equalnumshere = false;
    cout << "Введите первое число:";
    cin >> arr[0];
    cout << "Введите второе число:";
    cin >> arr[1];
    cout << "Введите третье число:";
    cin >> arr[2];
    for (int i = 1; i <= SIZE - 1; i++) {
        for (int j = 0; j <= SIZE - 1; j++) {
            if (arr[j] == arr[i]) {
                equalnumshere = true;
                break;
            }
        }
    }
    if (!equalnumshere) {
        cout << "Нет равных чисел!";
    }
    else if (equalnumshere) {
        int i = 0;
        while (i <= SIZE - 1) {
            cout << arr[i] + 5 << std::endl;
            i++;
        }
    }
}
Answer 1

Очевидно, что у вас сравнивается и число само с собой, а это всегда истинно :)

Попробуйте так:

for (int i = 0; i < SIZE - 1; i++) {
    for (int j = i+1; j < SIZE ; j++) {
        if (arr[j] == arr[i]) {
            equalnumshere = true;
            break;
        }
    }
}
READ ALSO
Небольшая проблема с выравниванием чисел по правому краю. C++

Небольшая проблема с выравниванием чисел по правому краю. C++

У меня есть последовательность чисел, которая разбивается на строкиКол-во строк зависит от кол-ва чисел(выбирается рандомно в диапазоне...

122
Как реализовать циклический сдвиг слова в C++

Как реализовать циклический сдвиг слова в C++

Допустим имеется слово "элемент"(слово может быть любым), нужно циклически сдвинуть слово вправо на "n" символовНапример, на 3 символа...

88
Зачем в коде нужна строчка? C++

Зачем в коде нужна строчка? C++

Есть вот такой кодНемного непонятно, что делает второй цикл while

109
работа класса с другим классом(С++, ООП) [закрыт]

работа класса с другим классом(С++, ООП) [закрыт]

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском

177