Найти минимальный элемент матрицы, и поменять его местами с первым элементом - C (СИ)

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

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

#include <stdlib.h>
#include <stdio.h>
#define N 3
#define M 4
int main()
{   
int i,j,min=0;
 int A[N][M] =  { { 5,  6,  4, 5},
                  { 0, 5,  3, 7},
                  { 8,  7, -2, 6}};
   for ( i = 0; i < N; i++)
   { 
   for ( j = 0; j < M; j++)
   printf("%3d", A[i][j]);
   printf("\n");
    } 
    min = A[0][0];
     for ( i = 0; i < N; i++) 
   for ( j = 0; j < M; j++)
   {
 if (A[i][j]<min)
   {
       min=A[i][j];
       
   }
   
 }
   printf ("Min=%d\n", min);   
    
   int temp;
for(i=0; i<N; i++)                          
    {
        for(j=0;j<M;j++)
        {
   temp=A[0][0];
    A[0][0]=min;
    min=temp;
    
        }  
 
  for ( i = 0; i < N; i++)
   { 
   for ( j = 0; j < M; j++)
   printf("%3d", temp);
   printf("\n");
    } 

    system ("PAUSE"); 
    return 0;
 }
}
Ребят в чем ошибка, почему не меняет мин с первым? срочно!!!
#include <stdlib.h>
#include <stdio.h>
#define N 3
#define M 4 
int main()
{   
int i,j,min=0;
 int A[N][M] =  { { 5,  6,  4, 5},
                  { 0, 5,  3, 7},
                  { 8,  7, -2, 6}};
   for ( i = 0; i < N; i++)
   { 
   for ( j = 0; j < M; j++)
   printf("%3d", A[i][j]);
   printf("\n");
    } 
    min = A[0][0];
     for ( i = 0; i < N; i++) 
   for ( j = 0; j < M; j++)
   {
 if (A[i][j]<min)
   {
       min=A[i][j];
       
   }
   
 }
   printf ("Min=%d\n", min);   
    
   int temp;
for(i=0; i<N; i++)                          
    {
        for(j=0;j<M;j++)
        {
   temp=A[i][0];
   A[i][0]=min;
   temp=min;
   min=A[i][0];

   }  
 
  for ( i = 0; i < N; i++)
   { 
   for ( j = 0; j < M; j++)
   printf("%3d", A[i][j]);
   printf("\n");
    } 
     printf("\n");
 printf("%3d", temp);
    
    system ("PAUSE"); 
    return 0;
 }
}
не меняет мин, почему?

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

textual
Листинг программы
#include <stdlib.h>
#include <stdio.h>
#define N 3
#define M 4
int main()
{   
  int i,j,min,imin=0,jmin=0,temp;
  int A[N][M] =  {{ 5,  6,  4, 5},
                  { 0, 5,  3, 7},
                  { 8,  7, -2, 6}};
   for ( i = 0; i < N; i++)
   { 
      for ( j = 0; j < M; j++)
        printf("%3d", A[i][j]);
      printf("\n");
   }
   min = A[0][0];
   for ( i = 0; i < N; i++)
      for ( j = 0; j < M; j++)
      {
         if (A[i][j]<min)
         {
              min=A[i][j];
              imin=i;
              jmin=j;
         }
      }
   printf ("Min=%d\n", min);
 
   temp=A[0][0];
   A[0][0]=min;
   A[imin][jmin]=temp;
 
   for ( i = 0; i < N; i++)
   { 
       for ( j = 0; j < M; j++)
          printf("%3d", A[i][j]);
       printf("\n");
   }
 
    system ("PAUSE"); 
    return 0;
}

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

  1. Подключаются необходимые библиотеки (stdlib.h, printf.h)
  2. Определяются размеры матрицы (N=3, M=4)
  3. Объявляются переменные: i, j, min, imin, jmin, temp
  4. Создается матрица A размером NxM (A[N][M])
  5. Выводится содержимое матрицы A в консоль
  6. Находится минимальный элемент матрицы (min) и его индексы (imin, jmin)
  7. Выводится значение минимального элемента (min)
  8. Производится обмен минимального элемента с первым элементом матрицы (A[0][0])
  9. Выводится измененное содержимое матрицы A в консоль
  10. Запускается пауза перед завершением программы (PAUSE)
  11. Возвращается 0 (завершение работы программы)

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


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

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

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