Есть ответ 👍

Уменя проблема со строчкой 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;
}

206
290
Посмотреть ответы 2

Ответы на вопрос:

zulfiya2006
4,4(34 оценок)

для динамического изменения в массиве лучше использовать динамическое распределение памяти, нежели статическое.

в данной программе я вижу, что массив статически выделил 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;

}

urbutite71
4,7(43 оценок)

Var a,b: array[1..13] of integer; i,j: integer; begin write('a: '); for i: = 1 to 13 do begin a[i]: =random(13)+1; write(a[i],' ') end; writeln; write('b: '); for j: = 1 to 13 do   begin   for i: = 1 to j do   b[j]: =b[j]+a[i];   write(b[j],' ')   end end.

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS