Вывести минимальные значения каждой диагонали матрицы, параллельной главной - C (СИ)

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

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

Дана квадратная матрица порядка М. Вывести минимальные значения каждой ее диагонали, параллельной главной (начиная с одноэлементной диагонали А[1,M])
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void CreateRandArr (int m,int a[m][m]);
void PrintArr (int m, int a[m][m]);
void FindMin (int m, int a[m][m]);
int main (void)
{
       int m=3;
       int a[m][m];
       CreateRandArr (m,a);
       PrintArr (m,a);
       FindMin (m,a);
       return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void CreateRandArr (int m,int a[m][m])
{
       int i,j;
       srand (time (NULL));
       for (i=0;i<m;i++)
          for (j=0;j<m;j++)
             a[i][j]=rand()%20+1;
}
void PrintArr (int m, int a[m][m])
{
       printf ("\n       <<<<Array>>>>\n\n");
       int i,j;
       for (i=0;i<m;i++)
       {
              for (j=0;j<m;j++)
              printf ("%5i",a[i][j]);
              printf ("\n");
       }
}
Самые самые трудности возникли в определении минимального элемента в диагонале
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void FindMin (int m, int a[m][m])
{
       int l,i,min;
 
       for (l=1;l<=2*m-1;l++) 
       {
                if (l<=m)  
                {
                        min=a[m-l+1][1]; 
                       // for (i=m-l+1;i<=m;i++) 
                        for (i=1;i<=m-l+1;i++) 
                        if (a[i][i-m+l]<min)
                        min=a[i][i-m+l]; 
                        printf("\n min element na diagonali %i = %i",l,min);
                }
                else
                if (l>m)
                {
                        min=a[2*m-l][m];
                        for(i=1;i<=2*m-l;i++)
                        if(a[i-m+l][i]<min)
                        min=a[i-m+l][i];
                        printf("\n min element na diagonali %i = %i",l,min);
                }
       }
}

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

textual
Листинг программы
for (i=1;i<=m-l+1;i++) 
{
                        if (a[i][i-m+l]<min)
                        min=a[i][i-m+l];
} 
                        printf("\n min element na diagonali %i = %i",l,min);

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

  1. Происходит итерация по всем элементам матрицы от первого до последнего элемента главной диагонали.
  2. Для каждого элемента проверяется его значение, если оно меньше текущего минимального значения, то обновляется значение переменной min.
  3. После завершения цикла выводится минимальное значение на главной диагонали матрицы.

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


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

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

12   голосов , оценка 4.083 из 5
Похожие ответы