Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Помогите написать код с массивом c++

Мне надо удалить все элементы стоящие до максимального, помогите дописать коl, я только нашел максимальный, а как дальше не знаю. Помогите пожалуйста! Вот мой код:

#include
#include
using namespace std;

int main()
{
setlocale(LC_ALL, "Rus");
int arr[]{15, 16, 2, 283, 10, 4, 144, 289, 14, 15};
int a;
int max = arr[0];
for (int i = 0; i < 10; ++i)
{
if (arr[i] > max) max = arr[i];
}
a = max;

cout << "Максимальное значения массива: " << a << endl;

}

По дате
По рейтингу
Аватар пользователя
Новичок

// Трюк с динамическим массивом
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
auto length = 10U;
auto arr = new int[length]{ 15, 16, 2, 283, 10, 4, 144, 289, 14, 15 };
for (auto i = 0U; i < length; ++i) {
cout << setw(4) << arr[i];
}
puts("");
auto max = 0U;
for (auto i = 1U; i < length; ++i) {
if (arr[i] > arr[max]) {
max = i;
}
}
auto buffer = length - max;
auto tmp = new int[buffer];
for (auto i = max, j = 0U; i < length; ++i, ++j) {
tmp[j] = arr[i];
}
delete[] arr;
length = buffer;
arr = new int[length];
for (auto i = 0U; i < length; ++i) {
arr[i] = tmp[i];
}
delete[] tmp;
for (auto i = 0U; i < length; ++i) {
cout << setw(4) << arr[i];
}
puts("");
delete[] arr;
system("pause > nul");
}

Аватар пользователя
Просветленный

тебе надо сохранять индекс максимума, а потом можешь просто попробовать
arr=&arr[imax]
тогда указатель будет указывать на максимальный элемент, как первый элемент массива.