Уменя проблема со строчкой for (int k = 0; k < size; k++): visual studio отказывается инициализировать arr[0], причём в следующем цикле всё хорошо. отладчик просто пропускает этот кусок кода. как это решить?
#include
using namespace std;
int main()
{
setlocale(lc_all, "rus");
int number, age, comparison;
cout < < "сколько пришло посетителей сегодня? ";
cin > > number;
const int size = 5;
int arr[size];
for (int i = 0; i < number; i++)
{
cout < < "сколько лет посетителю? ";
cin > > arr[i];
}
for (int k = 0; k < size; k++)
{
age = arr[0];
if (arr[k] < age)
{
age = arr[k];
}
}
cout < < "возраст самого младшего посетителя за сегодня: " < < age < < endl < < endl;
for (int j = 0; j < size; j++)
{
comparison = arr[0];
if (arr[j] > 0)
{
comparison = arr[j];
}
}
cout < < "возраст самого старшего посетителя за сегодня: " < < comparison < < endl < < endl;
return 0;
}
Ответы на вопрос:
для динамического изменения в массиве лучше использовать динамическое распределение памяти, нежели статическое.
в данной программе я вижу, что массив статически выделил 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
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
NoName35364711.07.2020 03:29
-
gobon133722.03.2023 01:49
-
kristipus200322.01.2020 22:07
-
lyubimov2005101.02.2022 12:05
-
Иисус123408.12.2021 19:38
-
aslanəz15.02.2022 01:14
-
автормемовв31.03.2022 02:12
-
матвей46709.06.2020 00:33
-
valerija123409.01.2021 23:24
-
apakovaleria19.02.2020 16:18
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.