В
Все
Х
Химия
В
Видео-ответы
А
Алгебра
Г
Геометрия
О
ОБЖ
Д
Другие предметы
У
Українська література
Р
Русский язык
Б
Беларуская мова
У
Українська мова
Э
Экономика
Ф
Физика
М
Математика
Ф
Французский язык
Г
География
И
Информатика
М
МХК
О
Окружающий мир
П
Психология
Н
Немецкий язык
О
Обществознание
П
Право
И
История
М
Музыка
Л
Литература
Қ
Қазақ тiлi
Б
Биология
А
Английский язык

Нужна в отладке программы 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;
}

Ответ:
lfifа
lfifа
10.10.2020 12:08

Ниже

Объяснение:

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.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?