|
|||
Примеры решения задач5.2 Примеры решения задач Условие 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; } }
|
|||
|