Дана квадратная матрица A порядка M. Начиная с элемента A1,1, вывести ее элементы «уголками» - C (СИ)

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

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

Возникла проблема в решении матриц, помогите пожалуйста!!!

1. Дана квадратная матрица A порядка M. Начиная с элемента A1,1, вывести ее элементы следующим образом («уголками»): все элементы первого столбца; элементы последней строки, кроме первого (уже выведенного) элемента; оставшиеся элементы второго столбца; оставшиеся элементы предпоследней строки и т. Д.; последним выводится элемент A1,M. Вот что получилось:
Листинг программы
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <stdio.h>
  4. #include <conio.h>
  5. #include <math.h>
  6. #include <stdlib.h>
  7. main()
  8. {
  9. int n,i,j,k,a[n][n],j1;
  10. printf("vvedite razmer matrici: ");
  11. scanf("%d",&n);
  12. for(i=0;i<=n;i++)
  13. {
  14. if (i%2==1)
  15. for(j=i;j<=n;j++)
  16. printf("[%d][%d]",i,j);
  17. if (i%2==0)
  18. for(j1=i;j1<=n;j++)
  19. printf("[%d][%d]",j1,i);
  20. }
  21. }
Если поможет, то у меня есть код Паскаля рабочий:
Листинг программы
  1. program n4_4;
  2. const m=5;
  3. var a:array[1..m,1..m] of integer;
  4. i,j,j1:integer;
  5. begin
  6. for i:=1 to m do
  7. for j:=1 to m do
  8. a[i,j]:=random(100);
  9. for i:=1 to m do
  10. begin
  11. if i mod 2=1 then
  12. for j:=i to m do
  13. write('[',i,',',j,'] ');
  14. if i mod 2=0 then
  15. for j1:=i to m do
  16. write('[',j1,',',i,'] ');
  17. writeln;
  18. end;
  19. readln;
  20. end.
Если не сложно помогите сделать еще 2 задачи, очень нужно! Заранее спасибо)) 2. Дана матрица размера M  N. В каждом ее столбце найти количество элементов, больших среднего арифметического всех элементов этого столбца. 3. Дана матрица размера M  N. Зеркально отразить ее элементы относительно вертикальной оси симметрии матрицы (при этом поменяются местами столбцы с номерами 1 и N, 2 и N – 1 и т. д.). Все коды есть на Паскале, если нужно пишите))

Решение задачи: «Дана квадратная матрица A порядка M. Начиная с элемента A1,1, вывести ее элементы «уголками»»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <malloc.h>
  3. #include <time.h>
  4. #include <conio.h>
  5.  
  6. main()
  7. {
  8.         int n;  
  9.         srand(time(NULL));
  10.         scanf("%d", &n);
  11.         int **arr = (int **)malloc(n*sizeof(int*));
  12.         if(arr)
  13.         {
  14.                 for(int i = 0; i < n; i++)
  15.                 {
  16.                      arr[i] = (int*)malloc(n*sizeof(int));
  17.                      for (int j = 0; j < n; ++j)
  18.                         arr[i][j] = rand()%500;
  19.                      if(!arr[i])
  20.                      {
  21.                           for (int i = 0; i < n; ++i)
  22.                           free(arr[i]);
  23.                           return 0;
  24.                      }
  25.                 }
  26.         }
  27.         printf("==========\n");
  28.         for (int i = 0; i < n; ++i)
  29.         {
  30.             for (int j = 0; j < n; ++j)
  31.                 printf("%d\t", arr[i][j]);
  32.             printf("\n");
  33.         }
  34.         printf("==========\n\n");
  35.         for (int i = 0; i < n; ++i)
  36.         {
  37.             for (int j = 0; j < n - i; ++j)
  38.                 printf("%d ", arr[j][i]);
  39.             for (int j = i + 1; j < n; ++j)
  40.                 printf("%d ", arr[n-i-1][j]);
  41.         }
  42.         getch();
  43.         return 0;
  44. }

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

В этом коде:

  1. Объявлена переменная n типа int, которая содержит размерность матрицы.
  2. Выполняется инициализация генератора случайных чисел.
  3. Выводится приглашение для ввода размера матрицы.
  4. Под динамическую память выделяется массив указателей на int.
  5. В цикле заполняются все элементы матрицы случайными числами.
  6. Выводится приглашение для вывода матрицы.
  7. В двух вложенных циклах выводятся все элементы матрицы.
  8. Выводится приглашение для вывода диагоналей матрицы.
  9. В двух вложенных циклах выводятся элементы главной и побочной диагоналей.
  10. Программа ожидает нажатия клавиши для завершения работы.

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


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

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

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

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

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

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