Р. А. Юсупов, С. Н. Искандарова, Ш. Мирзанова C/C++ тилида топшириқ ва масалалар Самарқанд – 2013 йил


Download 1.35 Mb.
bet65/105
Sana13.04.2023
Hajmi1.35 Mb.
#1353566
TuriУчебник
1   ...   61   62   63   64   65   66   67   68   ...   105
Bog'liq
CPP masalalari1


Часть II. Решения 139
Задача 164
// Проверяет, является ли матрица "магическим" квадратом
#include
#include
#define SZ 5 // максимальный размер матрицы
void main О
{
int a[SZ][SZ]; // матрица
int n; // размер проверяемой матрицы
int ok; // матрица - "магический" квадрат
int i,j; // индексы массива
int sum; // сумма эл-тов главной диагонали
int temp; // сумма элементов текущей строки,
// столбца или второй диагонали матрицы
printf ("*** МАГР1ЧЕСКШ КВАДРАТ ***\п") ;
printf("\пВведите размер матрицы (3..%i) -> ", SZ);
scanf{"%i", &n);
printf("Введите строки матрицыХп");
printf("После ввода строки, %i целых чисел, ", п);
printf("нажимайте \n");
for (i =0; i < n; i++)
{
printf("->");
for (j = 0; j < n; j++)
scanf("%i", &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];
140 C/C-h-h в задачах и примерах
if (temp != sum) ok = 0;
i++;
} while (ok && i < n);
if ( ok )
{
// здесь сумма элементов каждой строки
// равна сумме элементов главной диагонали
// вычисляем суммы по столбцам
j = 0;
do {
tertp = 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;
1 - п - 1;
for (j = 0; j < n; j++)
temp += a[i—] [j] ;
if (temp != sum) ok = 0;
}
printf("Введенная матрица ");
if ( !ok )
printf("не ");
printf("является \"магическим\"квадратом.\n");
printf("\пДля завершения нажмите ");
getch();

Download 1.35 Mb.

Do'stlaringiz bilan baham:
1   ...   61   62   63   64   65   66   67   68   ...   105




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling