Void main()
{
int const n=5, m=7;
int matr[n][m]={{0},{0}},i,j;
for (i=0;i<n;i++)
for(j=0;j<m;j++)
matr[i][j]=rand()%10-5;
for (i=0;i<n;i++)
{
for(j=0;j<m;j++)
cout<<matr[i][j]<<" ";
cout<<"\n";
}
cout<<"\n";
for (i=0;i<n-1;i++)
for(j=0;j<m-1;j++)
matr[i][j]=matr[i][j]-matr[n-1][j];
for (i=0;i<n;i++)
{
for(j=0;j<m;j++)
cout<<matr[i][j]<<" ";
cout<<"\n";
}
}
Приклад.
Скласти програму, яка перевіряє, чи є введена з клавіатури квадратна матриця «магічним» квадратом. «Магічним» квадратом називається матриця, в якій сума чисел у кожному горизонтальному рядку, в кожному вертикальному та в кожній діагоналі однакова.
2 |
9 |
4 |
7 |
5 |
3 |
6 |
1 |
8 |
13 |
8 |
12 |
1 |
2 |
11 |
7 |
14 |
3 |
10 |
6 |
15 |
16 |
5 |
9 |
4 |
// Перевіряє, чи є матриця «магічним» квадратом
#include <iostream.h>
Void main()
{
const int SZ=5;// максимальний розмір матриці
int a[SZ][SZ]; // матриця
int n; // розмір матриці
int ok; // матриця - "магічний" квадрат
Int I,j; // індекси масиву
int sum; // сума елементів головної діагоналі
int temp; // сума елементів поточного рядка,
// стовпця та другої діагоналі матриці
cout<<"*** МАГІЧНИЙ КВАДРАТ ***\n";
cout<<"\n Введіть розмір матриці";
cin>>n;
cout<<"Введіть рядки матриці \n";
cout<<"Після введення рядка "<<n<<" цілих чисел ";
cout<<"натискайте <Enter>\n";
for (i = 0 ; i < n; i++)
{
for (j = 0; j < n; j++)
cin>>a[i][j];
}
ok = 1; // хай матриця - "магічний" квадрат
// обчислимо суму елементів головної діагоналі
sum = 0;
for (i = 0; i < n; i++)
sum += a[i][i];
// обчислюємо суми по рядкам
i = 0;
do {
temp = 0 ; // сума елементів поточного рядка
for (j = 0; j < n; j++)
temp+=a[i][j];
if (temp!=sum) ok=0;
i++;
} while (ok && i<n);
if (ok)
{
// тут сума елементів кожного рядка
// дорівнює сумі елементів головної діагоналі
// обчислюємо суми по стовпцям
j = 0;
do {
temp = 0; // сума елементів поточного стовпця
for (i = 0 ; i < n; i++)
temp += a[i][j];
if (temp != sum) ok = 0;
j++;
} while (ok && i < n);
}
if (ok) {
// тут сума елементів кожного рядка
// дорівнює сумі елементів кожного стовпця та
// сумі елементів головної діагоналі.
// Обчислимо суму елементів другої
// головної діагоналі
temp = 0;
i=n-1;
for (j = 0; j < n; j++)
temp+=a[i--][j];
if (temp!=sum) ok=0;
}
cout<<"Введена матриця ";
if (!ok)
cout<<"не є \"магічним\"квадратом.\n";
}
Приклад.
Обчисліть кількість додатніх елементів квадратної матриці, розташованих по периметру та на діагоналях.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# include<iostream.h>
