В первой строке задана длина исходного массива. Во второй - сам массив. Удалить из массива нули, вывести обновлённый массив. Если он оказался пустым, вывести "NO".
#include <iostream>
using namespace std;
void del (int *arr, int &i, int &n)
{
n--;
for (int j=i;j<n;j++)
{
arr[j] = arr[j+1];
}
}
int main()
{
int n;
cin >> n;
int *arr = new int[n];
for (int i=0;i<n;i++)
{
cin >> arr[i];
}
for (int i=0;i<n;i++)
{
if (arr[i]==0) del(arr,i,n);
}
for (int i=0;i<n;i++)
{
cout << arr[i] << " ";
}
return 0;
}
При вводе
5
0 0 0 0 0
выводит
0 0
Удаление на месте:
int removed = 0;
for (int i=0;i<n;i++)
{
if (arr[i]==0)
removed++;
else
arr[i-removed] = arr[i];
}
И в конце вывести начало массива длиной n-removed
(реального изменения длины задача вроде не требует)
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть два вектора в1 и в2, задача получить третий вектор в3, каждый элемент которого равен логическому ИЛИ соответствующих элементов векторов...
Понимаю, что много вопросов на эту тему уже писалиМне нужно написать программу, которая будет объединять два массива, записывая в 3
В общем над проблемой бьюсь вторые суткиДело в отправке простого multipart/form-data запроса на ssl сервер
Линейный массив A содержит 2*N элементов, значения которых задаются по следующей формуле a[i]:=10*sin(N+i*i)Элементы массива нумеруются с единицы