Вывести минимальные значения каждой диагонали матрицы, параллельной главной - 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. После завершения цикла выводится минимальное значение на главной диагонали матрицы.

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

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

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