Разместить на главной диагонали суммы элементов, которые лежат на диагоналях, перпендикулярных к главной - C (СИ) (70470)
Формулировка задачи:
Создать квадратную матрицу целых чисел размером 9х9. Матрицу следует заполнить случайными числами, рекомендуем выбирать эти числа из диапазона 0 - 99.Заполнить матрицу случайными числами. Разместить на главной диагонали суммы элементов, которые лежат на диагоналях, перпендикулярных к главной.
Решение задачи: «Разместить на главной диагонали суммы элементов, которые лежат на диагоналях, перпендикулярных к главной»
textual
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- #include <Windows.h>
- #define S 9
- int main() {
- int **matr = (int **)malloc(sizeof(int *) * S);
- int i, j, k = 0;
- int sum1 = 0, sum2 = 0;
- for (i = 0; i < S; i++) matr[i] = malloc(sizeof(int) * S);
- for (i = 0; i < S; i++) {
- for (j = 0; j < S; j++) {
- matr[i][j] = rand() % 100;
- printf("%6d ", matr[i][j]);
- }
- putchar('\n');
- }
- k = 1;
- while (k <= 4)
- {
- j = k; sum1 = 0; sum2 = 0;
- for (i = k - 1; i >= 0; i--)
- {
- j++;
- sum1 = sum1 + matr[i][j] + matr[j][i];
- sum2 = sum2 + matr[S - 1 - i][S - 1 - j] + matr[S - 1 - j][S - 1 - i];
- }
- matr[k][k] = sum1;
- matr[S - 1 - k][S - 1 - k] = sum2;
- k++;
- }
- printf("---------------------\n");
- for (i = 0; i < S; i++) {
- for (j = 0; j < S; j++) printf("%6d ", matr[i][j]);
- printf("\n");
- putchar('\n');
- }
- for (i = 0; i < S; i++) free(matr[i]);
- free(matr);
- system("pause");
- return 0;
- }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Определяем размерность матрицы (S = 9)
- Выделяем память под матрицу двойной динамической памяти
- Заполняем матрицу случайными числами от 0 до 99
- Выводим на экран заполненную матрицу
- Задаем счётчик для прохождения по диагоналям (k = 1)
- На каждой диагонали (k = 1,2,3,4) суммируем элементы главной диагонали и элементы побочной диагонали
- Записываем полученные суммы на соответствующие позиции главной диагонали
- Выводим на экран заполненную матрицу с суммами на главной диагонали
- Освобождаем память и ждем нажатия клавиши для завершения работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д