{ const int n=10;
float a[n]={0};
int i;
cout<<"Input elements of massiv a:\n";
for (i=0;i<n;i++)
{ cout<<"a["<<i<<"] = ";
cin>>a[i];
}
cout<<"Massiv a:\n";
for (i=0;i<n;i++) cout<<a[i]<<" ";
cout<<"\n";
int kzero=0; //кол-во 0
i=0;
while((i<n)&&(kzero<n))
{
if (!a[i])
{ kzero++;
for (int j=i+1;j<n;j++)
a[j-1]=a[j];
}
if (a[i]) i++;
}
for (i=n-kzero;i<n;i++) a[i]=-1;
cout<<"Massiv a:\n";
for (i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<"\n";
}
Вариант № 2
#include <iostream>
using namespace std;
Void main()
{
const int n=10;
float a[n]={0};
int i, zero=0;
cout<<"Input elements of massiv a:\n";
for (i=0;i<n;i++)
{ cout<<"a["<<i<<"] = ";
cin>>a[i];
}
cout<<"Massiv a:\n";
for (i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<"\n";
i=0;
while (i<n)
{ int j;
int izero=0;
for (j=i;j<n;j++)
{ if ( !a[j] ) izero++;
else break;
}
If (izero)
{ for (int j=i+izero;j<n;j++)
{ a[j-izero]=a[j];
}
i+=izero;
zero+=izero;
}
else i++;
}
for (i=n-zero;i<n;i++) a[i]=-1;
cout<<"Massiv a:\n";
for (i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<"\n";
}
Домашнее задание
1. Написать программу, копирующую последовательно элементы одного массива размером 10 элементов в 2 массива размером 5 элементов каждый.
#include <iostream>
using namespace std;