
Помогите переделать код, чтобы искало два максимальных элемента (в данном коде ищет максимальный и
минимальный элементы) #include #include using namespace std; int main() { setlocale(LC_ALL,"RU"); srand(time(NULL)); int a[10]; printf("массив"); for (int i = 0; i < 10; i++){ a[i] = -15 + (rand() % 26); printf("%d ", a[i]);} int min = a[0], max = 0, n, m; for (int i = 0; i < 10; i++){ if (a[i] > max){ max = a[i]; n = i;} if (a[i] < min){ min = a[i]; m = i;} } printf("\na[max]: %d, %d", max, n); printf("\na[min]: %d, %d", min, m); }

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

Ответ:
Объяснение:
#include <iostream>
using namespace std;
int main(){
setlocale(LC_ALL,"RU");
srand(time(NULL));
int a[10];
int ans = 0;
cout << "массив";
for (int i = 0; i < 10; i++){
a[i] = -15 + (rand() % 26);
printf("%d ", a[i]);
}
int max1 = a[0], max2 = a[0], n, m;
for (int i = 0; i < 10; i++){
if (a[i] > max1){
max2 = max1;
max1 = a[i];
}
else if(a[i] < max1 && a[i] > max2){
max2 = a[i];
}
}
cout << endl;
cout << "Самый больший максимум: "<< max1 << endl << "Второй максимум: "<< max2;
}



Конечно, вот переделанный код, который ищет два максимальных элемента в массиве:
cpp#include <iostream>
#include <ctime>
using namespace std;
int main() {
setlocale(LC_ALL, "RU");
srand(time(NULL));
int a[10];
printf("массив: ");
for (int i = 0; i < 10; i++) {
a[i] = -15 + (rand() % 26);
printf("%d ", a[i]);
}
int first_max = INT_MIN; // Инициализируем первый максимальный элемент как минимальное возможное значение
int second_max = INT_MIN; // Инициализируем второй максимальный элемент как минимальное возможное значение
int first_max_index, second_max_index;
for (int i = 0; i < 10; i++) {
if (a[i] > first_max) {
second_max = first_max; // Сдвигаем текущий первый максимальный элемент на вторую позицию
second_max_index = first_max_index;
first_max = a[i]; // Обновляем первый максимальный элемент
first_max_index = i; // Обновляем индекс первого максимального элемента
} else if (a[i] > second_max) {
second_max = a[i]; // Обновляем второй максимальный элемент
second_max_index = i; // Обновляем индекс второго максимального элемента
}
}
printf("\nПервый максимальный элемент: %d, Индекс: %d", first_max, first_max_index);
printf("\nВторой максимальный элемент: %d, Индекс: %d", second_max, second_max_index);
return 0;
}
В этом коде переменные first_max
и second_max
хранят два максимальных элемента, а переменные first_max_index
и second_max_index
хранят их соответствующие индексы в массиве.


Похожие вопросы

Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili