C/C++

Помогите с заданием на C++

1)сформировать одномерный массив целых чисел, используя датчик случайных чисел
2)вывести полученный массив на экран
3)удалить последний элемент равный 0
4)добавить после элемента массива с заданным индексом элемент со значением 0
5) вывести полученный массив на экран
Igor Dyuzhakov
Igor Dyuzhakov
588
#include <iostream>
#include <ctime>
#include <cstdlib>

using namespace std;

const int vvod_size(void)
{ // ввести размер массива
int size;
cout << "Введите размер массива: ";
cin >> size;
return size;
}

void print_mas (int * A, const int size)
{ // вывести массив на печать
for(int x = 0; x < size; x++)
cout << A[x] << ' ';
cout << endl;
}

int main()
{
const int size = vvod_size();
int A[size+1]; // +1 для того случая, когда не будет найден ноль,
// а в конец массива ноль добавлять нужно.
srand(time(NULL)); // чтобы числа были более случайными
// формируем массив
for(int x = 0; x < size; x++)
A[x] = -10 + rand() % 21; // будут числа от -10 до 10
print_mas (A,size); // вывод массива
int zero; // для позиции последнего элемента, равному нулю.
bool find_zero = false; // true, если элемент найден.
// начинаем поиск
for(int x = size - 1; x >= 0; x--)
{
if(A[x] == 0)
{
find_zero = true;
zero = x;
break; // останавливаем цикл
}
}
int length = size; // для изменений размера массива
if(find_zero)
{ // только, если был ноль в массиве
// "удаляем" ноль (сдвигаем позиции массива)
length--; // новый размер массива уменьшился
for(int x = zero; x < length; x++)
A[x] = A[x+1];
}
// теперь добавляем ноль, я так понял в конец массива
A[length] = 0;
length++;

print_mas (A,length); // вывод на экран

return 0;
}
Elxan Manafov
Elxan Manafov
55 080
Лучший ответ