Примеры решения задач. Условие 1. Заполнить матрицу A размерностью NхN так, чтобы на диагоналях располагались 1, а остальные элементы были равны 0

Условие 1. Заполнить матрицу A размерностью NхN так, чтобы на диагоналях располагались 1, а остальные элементы были равны 0.

Составим блок-схему решения задачи (рисунок 5.3)

 


Рисунок 5.3 —Блок-схема решения задачи

Код программы представлен ниже:

 

# include <iostream.h>

int main () {

int i,j,N;

int a[10] [10];

cout<< " Vvedi N= ";

cin >> N;

for (i=0; i<N; i++){

for (j=0; j<N; j++)

if (i==j || i+j+1==N)

a[i][j]=1; else a[i][j]=0;}

cout<< " Maccub rezalt "<< endl;

for (i=0; i<N;i++) {

for (j=0;j<N;j++) {

cout<< a[i][j] << " ";}

cout<< "\n";}

system ("pause");

return 0;}

 

Результат работы программы представлен на рисунке 5.4.

 

Рисунок 5.4 — Результат работы программы

 

Далее в рассмотренных примерах укажем основной алгоритм решения, опустив описание и ввод данных.

Условие 2. Найти минимальный и максимальный элементы матрицы и их координаты.

min=max=a[0][0];

imin=jmin=imax=jmax=0;

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

if (a[i][j]<min) { min=a[i][j]; imin=i; jmin=j; }

Else

if (a[i][j]>max) { max=a[i][j]; imax=i; jmax=j; }

}

Условие 3. Упорядочить строки матрицы по неубыванию их максимальных элементов.

for (i=0; i<n; i++)

{ // поиск максимальных элементов в строках и занесение их в массив b

b[i]=a[i][0];

for (j=1; j<m; j++)

if (a[i][j]>b[i]) b[i]=a[i][j];

}

//сортировка строк матрицы по максимальному элементу

for (i=0; i<n-1; i++)

for (j=i+1; j<n; j++)

if (b[i]>b[j])

{

t=b[i];

b[i]=b[j];

b[j]=t;

for (k=0; k<m; k++)

{

t=a[i][k];

a[i][k]=a[j][k];

a[j][k]=t;

} }

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: