Нужна помощь в отладке программы c++.
При её запуске почему-то во всех случаях выводится первое сообщение, даже если условие не верно.
ЗАДАНИЕ
Задание Сделать программу, которая печатает значение true,
если число c является средним арифметическим чисел a и b
и false, если не является
#include
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
int a, b, c;
cout << "Введите числа a,b,c:";
cin >> a >> b >> c;
if (c = (a + b) / 2) cout << "число c является средним арифметическим чисел a и b\n";
else cout << "Число c не является средним арифметическим чисел a и b\n";
return 0;
}
Answers & Comments
Ответ:
Ниже
Объяснение:
1) Во-первых, числа сравниваются двойным "=". То есть для проверки равенства чисел x и y пишут x == y.
2) Во-вторых, сама проверка на среднее арифметическое для целых чисел здесь неправильная. (a+b) / 2 дает целочисленное деление на 2. То есть, например, если a=4, b=5, то результатом будет не (4+5)/2 = 4.5, а целая часть от частного, то есть 4. В результате на тест a=4, b=5, c=4 программа выдаст true, когда должна выдавать false. Предлагаю изменить условие на 2 * c == a + b.