Автор - TheCrashMan

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

Ответ

Автор - Koljisto

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

В данной программе я вижу, что массив статически выделил 5 ячеек, но при том он пытается записать 10 значений (если я введу в number "10").

Поэтому лучше будет переписать программу так:

#include <iostream>

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 <iostream>


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 <iostream>

#include <algorithm>

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;

}

Ответы и объяснения

Сервис носит ознакомительный характер, вся информация, а в частности вопросы и ответы, которые задают и отвечают пользователи.
© 2025 Все права защищены Политика конфиденциальности Контакты
search points attachment profile arrow left arrow right star heart verified symbols equation arrow-down question mark check menu accountancyadministrationagriculturalalgebraallarabicartart_musicbelarusbelarus_altbiologybusinesscatalachemistrychineseeconomicsegzamenglishentrepreneurshipenvironmentethicseuskarafirst_aidfrenchgalegogeographygeologygeometrygermangrammarhealthhistoryindia_langindonesian_langinformaticsitalianjapanesekazachkazach_altkoreanlanguagelatinlawlife_scienceliteraturelogicmathematicsmusicnigerian_langother_languagesotherspedagogicsphilosophyphysical_educationphysicspoliticspsychologyreligionrpa_langrussianrussian_altsciencesecurityskillssocial_sciencesociologyspanishstatisticstechnologytourismtrafficukrainianukrainian_altukrainian_literaturewos_civilisation accountancyadministrationagriculturalalgebraall_1arabicartart_music_2belarusbelarus_altbiologybusiness_2catalachemistry_1chineseeconomicsexam_3englishentrepreneurshipenvironment_2ethicseuskarasecurity_1frenchgalegogeography_4geology_4geometrygermangrammarhealthhistoryindia-langindonesian-langinformaticsitalianjapanesekazachAsset 230koreanlanguagelatinlawlife-scienceliteraturelogic_2mathematicsmusicnigerian-langotherlanguagesother_1pedagogicsphilosophyphysical_educationphysicspoliticspsychologyreligion_1rpa-langrussianrussian_altsciencesecurity_3_mskills_1allsocial_science_5_msociologyspanishstatisticstechnologytourismtrafficukrainianukrainian_altukrainian_literaturewos_civilisation