В первой строке задана длина исходного массива. Во второй - сам массив. Удалить из массива нули, вывести обновлённый массив. Если он оказался пустым, вывести "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 (реального изменения длины задача вроде не требует)
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости