Получить квадратную матрицу порядка n по заданному образцу - C (СИ)

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

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

5.95 Получить квадратную матрицу порядка n по заданному образцу: 1 2 3 … n-2 n-1 n 2 1 2 … n-3 n-2 n-1 3 2 1 n-4 n-3 n-2 . . . … . . . . . … … . . n-1 n-2 n-3 … 2 1 2 n n-1 n-2 … 3 2 1 Нужно решить задачу с помощью указателей. Есть решение, не используя их:
Листинг программы
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <math.h>
  4. #include <stdlib.h>
  5. #define n1 100
  6. #define m1 100
  7. void main(void)
  8. {
  9. clrscr();
  10. int a[n1][m1], n, i, j, temp, k, v;
  11. randomize();
  12. printf("Vvedite n - ");
  13. scanf("%i", &n);
  14. for (i = 0; i < n; i++)
  15. {
  16. a[i][i] = 1;
  17. for (j = i + 1; j <= n; j++)
  18. {
  19. a[i][j] = (j - i) + 1;
  20. a[j][i] = (j - i) + 1;
  21. }
  22. }
  23. for (i = 0; i < n; i++)
  24. {
  25. for (j = 0; j < n; j++)
  26. printf("%i ", a[i][j]);
  27. printf("\n");
  28. }
  29. getch();
  30. }

Решение задачи: «Получить квадратную матрицу порядка n по заданному образцу»

textual
Листинг программы
  1. #include<conio.h>
  2. #include<math.h>
  3. #include<stdlib.h>
  4. #define n1 100
  5. #define m1 100
  6. int main()
  7. {
  8.     int a[n1][m1],n,i,j;
  9.     n=5;
  10.     for(i=0;i<n;i++)
  11.     {
  12.         *((int*)a+i*m1+i)=1;
  13.         for(j=i+1;j<=n;j++)
  14.         {
  15.             *((int*)a+i*m1+j)=(j-i)+1;
  16.             *((int*)a+j*m1+i)=(j-i)+1;
  17.         }
  18.     }
  19.     for(i=0;i<n;i++)
  20.     {
  21.         for(j=0;j<n;j++)
  22.             printf("%i  ",*((int*)a+i*m1+j));
  23.         printf("\n");
  24.     }
  25.     system("pause");
  26.     return 0;
  27. }

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

В этом коде:

  1. Создается массив a типа int размером n1 на m1.
  2. Задается значение переменной n равным 5.
  3. В цикле формируется квадратная матрица порядка n по заданному образцу:
      • Внутренний цикл i=0..n-1 заполняет главную диагональ матрицы значениями 1.
      • Внешний цикл j=i+1..n заполняет побочные диагонали значениями (j-i)+1.
  4. Выводится на экран полученная матрица.
  5. Ввод команды system(pause) приостанавливает выполнение программы до нажатия клавиши.
  6. Возвращается 0, завершая работу программы. Пример вывода на экран при n=5: 1 2 3 4 5 2 1 3 4 5 3 2 1 4 5 4 3 2 1 5 5 4 3 2 1

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


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

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

12   голосов , оценка 4.083 из 5

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

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

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