ЗАДАЧА 12.Дан массив А состоящий из k целых положительных чисел. Записать все четные по значению элементы массива А в массив В.
int main()
{
int a[20], b[20], k, i, m;
printf("k="); scanf("%d",&k);
for (m=-1,i=0; i<k; i++)
{
printf("\n a[%d]=",i);
scanf("%d",&a[i]);
if (a[i]%2==0)
{
m++;
b[m]=a[i];
}
}
if (m=-1) printf("\n There are not even elements! \n");
else
for (i=0;i<=m;i++)
printf("\n b[%d]=%d \t", i, b[i]);
}
ЗАДАЧА 13. Дан массив Х = (х0, …,хn-1). Переписать 7 первых положительных элементов массива Х подряд в массив Y = (y0, …, y6).
#include <iostream.h>
int main()
{
float X[20], Y[20]; int k, i, n;
cout<<"n="; cin>>n;
for (i=0;i<n;cin>>X[i++]);
for (k=-1,i=0;i<n;i++)
if (X[i]>0)
{
Y[++k]=X[i];
if (k==6) break;
}
if (k>-1) for (i=0;i<=k;cout<<Y[i++]<<"\t");
else cout<<"ERROR!!!";
}
ЗАДАЧА 14. Все наименьшие элементы массива Х(n) заменить средним арифметическим его значений.
#include<iostream.h>
int main()
{
float X[20],S,min;int n,i;
cout<<"n="; cin>>n;
for (i=0;i<n;cin>>X[i++]);
for (S=0,min=X[0],i=0; i<n;S+=X[i],i++)
if (X[i]<min)min=X[i];
S=S/n;
cout<<"min="<<min<<"\t S="<<S<<endl;
for (i=0;i<n; cout<<X[i++]<<"\t");
cout<<endl;
for (i=0;i<n;i++)
if (X[i]==min) X[i]=S;
for (i=0;i<n; cout<<X[i++]<<"\t");
}
ЗАДАЧА 15. Удалить из массива последний нулевой элемент.
#include<iostream.h>
int main()
{float X[20]; int n,i,nom;
cout<<"n="; cin>>n;
for (i=0;i<n;cin>>X[i++]);
for (nom=n,i=n-1;i>=0;i--)
if (X[i]==0)
{nom=i;break;}
cout<<"nom="<<nom<<endl;
for (i=0;i<n; cout<<X[i++]<<"\t");
for (i=nom;i<n-1; X[i]=X[i+1],i++);
if (nom!=n) n--;
for (i=0;i<n; cout<<X[i++]<<"\t");
}
Обработка матриц
Рассмотрим основные операции, выполняемые над матрицами.
Ввод-вывод матрицы
Матрицы, как и массивы, нужно вводить (выводить) поэлементно. Далее приведен текст программы, в которой организован поэлементный ввод матрицы А и вывод ее на экран в виде таблицы.
Вариант 1.
#include <stdio.h>
int main()
{int i,j,n,m; float b,a[25][25];
printf("Введите размеры матрицы\n"); scanf("%d%d",&n,&m);
printf("Ввод матрицы A\n");
for(i=0;i<n;i++)
for(j=0;j<m; scanf("%g",&a[i][j]);j++)
printf("Матрица A\n");
for(i=0;i<n; printf("\n");i++)
for(j=0;j<m; printf("%g\t",a[i][j]);j++)
}
Вариант 2
#include<iostream.h>
void main()
{int A[10][10],N,M,i,j;
cout <<"\n N="; cin >>N;cout <<"\n M="; cin >>M;
for (i=0;i<N;i++)
for (j=0;j<M;cout<<"\n A["<<i<<","<<j<<"]=";
cin>>A[i][j];j++)
for (i=0;i<N; cout <<"\n";i++)
for (j=0;j<M; cout <<"\t"<<A[i][j];j++)
}