М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
эмирия
эмирия
07.05.2023 10:34 •  Информатика

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

👇
Ответ:
Злата1616
Злата1616
07.05.2023

Ниже

Объяснение:

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.

4,5(72 оценок)
Открыть все ответы
Ответ:
w11Maxim11w
w11Maxim11w
07.05.2023

// PascalABC.NET 3.4.2, сборка 1782 от 01.09.2018

// Внимание! Если программа не работает, обновите версию!


begin

 var число := ReadInteger('Введите трехзначное натуральное число:');

 var (сотни, единицы) := (число div 100, число mod 10);

 var десятки := число div 10 mod 10;

 var ПроизведениеЦифр := сотни * десятки * единицы;

 var СуммаЦифр := сотни + десятки + единицы;

 Println('Искомый остаток равен', ПроизведениеЦифр mod СуммаЦифр);

 Println('Новое число', 100 * сотни + 10 * единицы + десятки)

end.


Введите трехзначное натуральное число: 389

Искомый остаток равен 16

Новое число 398

4,6(66 оценок)
Ответ:
angelokfrimen
angelokfrimen
07.05.2023

#include <iostream>

using namespace std;

int main(){

int number = 0;

cout << "Enter the month number: ";

cin >> number;

if ((number >= 1) and (number <= 12)){

 if (number < 8){

  if (number % 2 != 0){

   cout << "31 days";

  }else if((number % 2 == 0) and (number != 2)){

   cout << "30 days";

  }else if(number == 2){

   cout << "28 days";

  }

 }else if (number > 7){

 if (number % 2 != 0){

  cout << "30 days";

 }else if(number % 2 == 0){

  cout << "31 days";

  }

 }

}else{

 cout << "Please enter a valid number";

}

return 0;

}

4,4(63 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
Полный доступ к MOGZ
Живи умнее Безлимитный доступ к MOGZ Оформи подписку
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ