Разместить на главной диагонали суммы элементов, которые лежат на диагоналях, перпендикулярных к главной - C (СИ) (70470)

Узнай цену своей работы

Формулировка задачи:

Создать квадратную матрицу целых чисел размером 9х9. Матрицу следует заполнить случайными числами, рекомендуем выбирать эти числа из диапазона 0 - 99.Заполнить матрицу случайными числами. Разместить на главной диагонали суммы элементов, которые лежат на диагоналях, перпендикулярных к главной.

Решение задачи: «Разместить на главной диагонали суммы элементов, которые лежат на диагоналях, перпендикулярных к главной»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <Windows.h>
  4. #define S   9
  5.  
  6. int main() {
  7.     int **matr = (int **)malloc(sizeof(int *) * S);
  8.     int i, j, k = 0;
  9.     int sum1 = 0, sum2 = 0;
  10.  
  11.     for (i = 0; i < S; i++) matr[i] = malloc(sizeof(int) * S);
  12.  
  13.     for (i = 0; i < S; i++) {
  14.         for (j = 0; j < S; j++) {
  15.             matr[i][j] = rand() % 100;
  16.             printf("%6d ", matr[i][j]);
  17.         }
  18.         putchar('\n');
  19.     }
  20.  
  21.     k = 1;
  22.     while (k <= 4)
  23.     {
  24.         j = k; sum1 = 0; sum2 = 0;
  25.         for (i = k - 1; i >= 0; i--)
  26.         {
  27.             j++;
  28.             sum1 = sum1 + matr[i][j] + matr[j][i];
  29.             sum2 = sum2 + matr[S - 1 - i][S - 1 - j] + matr[S - 1 - j][S - 1 - i];
  30.         }
  31.         matr[k][k] = sum1;
  32.         matr[S - 1 - k][S - 1 - k] = sum2;
  33.         k++;
  34.     }
  35.  
  36.  
  37.         printf("---------------------\n");
  38.         for (i = 0; i < S; i++) {
  39.             for (j = 0; j < S; j++) printf("%6d ", matr[i][j]);
  40.             printf("\n");
  41.             putchar('\n');
  42.         }
  43.         for (i = 0; i < S; i++) free(matr[i]);
  44.         free(matr);
  45.         system("pause");
  46.         return 0;
  47. }

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы
  2. Определяем размерность матрицы (S = 9)
  3. Выделяем память под матрицу двойной динамической памяти
  4. Заполняем матрицу случайными числами от 0 до 99
  5. Выводим на экран заполненную матрицу
  6. Задаем счётчик для прохождения по диагоналям (k = 1)
  7. На каждой диагонали (k = 1,2,3,4) суммируем элементы главной диагонали и элементы побочной диагонали
  8. Записываем полученные суммы на соответствующие позиции главной диагонали
  9. Выводим на экран заполненную матрицу с суммами на главной диагонали
  10. Освобождаем память и ждем нажатия клавиши для завершения работы программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы