Нужно было написать программу, которая находит наибольшее из трех чисел a, b и c. Начинающий программист написал фрагмент программы так: if a > b then
M := a
else
M := b;
if c > b then
M := c
else
M := b;
При каких наборах значений a, b, c эта программа работает неверно?
Выберите все подходящие варианты.
a = 1; b = 4; c = 7
a = 1; b = 7; c = 4
a = 7; b = 4; c = 1
a = 4; b = 7; c = 1
a = 7; b = 1; c = 4
a = 4; b = 1; c = 7
ОТВЕТ ДАЙТЕ ПРАВИЛЬНЫЙ НЕ ОТ БАЛДЫ
Ответы на вопрос:
для динамического изменения в массиве лучше использовать динамическое распределение памяти, нежели статическое.
в данной программе я вижу, что массив статически выделил 5 ячеек, но при том он пытается записать 10 значений (если я введу в number "10").
поэтому лучше будет переписать программу так:
#include
using namespace std;
int main()
{
setlocale(lc_all, "rus");
int numbers, age, comparison;
cout < < "сколько пришло посетителей сегодня? ";
cin > > numbers;
int* arr=new int [numbers];
for (int i = 0; i < numbers; i++)
{
cout < < "сколько лет посетителю? ";
cin > > arr[i];
}
age = arr[0];
for (int k = 0; k < numbers; k++)
{
if (arr[k] < age)
{
age = arr[k];
}
}
cout < < "возраст самого младшего посетителя за сегодня: " < < age < < endl < < endl;
for (int j = 0; j < numbers; j++)
{
comparison = arr[0];
if (arr[j] > 0)
{
comparison = arr[j];
}
}
cout < < "возраст самого старшего посетителя за сегодня: " < < comparison < < endl < < endl;
return 0;
}
вариант с одним циклом и ключами:
#include
using namespace std;
int main()
{
setlocale(lc_all, "rus");
int numbers, age, comparison;
bool key1 = false, key2 = false;
cout < < "сколько пришло посетителей сегодня? ";
cin > > numbers;
int* arr=new int [numbers];
for (int i = 0; i < numbers; i++)
{
cout < < "сколько лет посетителю? ";
cin > > arr[i];
if (! key1) {
key1 = true;
age = arr[0];
}
if (! key2) {
key2 = true;
comparison = arr[0];
}
if (arr[i] > 0)
{
comparison = arr[i];
}
if (arr[i] < age)
{
age = arr[i];
}
}
cout < < "возраст самого младшего посетителя за сегодня: " < < age < < endl < < endl;
cout < < "возраст самого старшего посетителя за сегодня: " < < comparison < < endl < < endl;
return 0;
}
вариант с использованием встроенных функций:
#include
#include
using namespace std;
int main()
{
setlocale(lc_all, "rus");
int numbers;
cout < < "сколько пришло посетителей сегодня? ";
cin > > numbers;
int* arr=new int [numbers];
for (int i = 0; i < numbers; i++)
{
cout < < "сколько лет посетителю? ";
cin > > arr[i];
}
cout < < "возраст самого младшего посетителя за сегодня: " < < *min_element(arr, arr + numbers) < < endl < < endl;
cout < < "возраст самого старшего посетителя за сегодня: " < < *max_element(arr, arr + numbers) < < endl < < endl;
return 0;
}
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
sedoidenis200025.09.2021 11:51
-
Frisk01102.04.2021 03:53
-
lainzord07.05.2021 15:30
-
ksyushalion28.09.2022 10:22
-
Nikikiki30323.07.2021 13:50
-
JokeHa08.09.2021 03:03
-
kookie0405.08.2020 01:10
-
BraveBeast15.11.2021 05:19
-
Милана07080030.06.2020 19:05
-
bellason07.02.2021 01:01
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.