Найти сумму элементов строки матрицы, в которой расположен элемент с наименьшим значением - C (СИ)

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

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

Задача:В данной действительной квадратной матрице порядка n найти сумму элементов строки, в которой расположен элемент с наименьшим значением. Предполагается, что такой элемент единственный. Нужно решить задачу по этому примеру: Задание. Найти максимальную сумму элементов строк матрицы 3х5. Пример программы без использования указателей:
#include <stdio.h>
void main()
{
int a[3][5], i, j, s, max;
printf (“Введите 3 строки по 5 чисел”);
for (i=0;i<3;i++)
 for (j=0;j<5;j++)
  scanf("%d",&a[i][j]);
printf (“Матрица а :\n”);
 for (i=0; i<3; i++)
  {for (j=0; j<5; j++)
    printf (“%5d”, a[i][j]);
    printf (“\n”);
  }
for(i=0;i<3;i++)
  {s=0;
    for (j=0;j<5;j++)
      s+=a[i][j];
    if (i==0) max=s;
    else if (max<s) max=s;
  }
printf("Максимальная сумма строки = %d",max);
}
Пример программы с использованием указателей:
#include <stdio.h>
void main()
{
int a[3][5], *Р, i, j, s, max;
printf (“Введите 3 строки по 5 чисел”);
for (i=0;i<3;i++)
 for (j=0;j<5;j++)
  scanf("%d",&a[i][j]);
printf (“Матрица а :\n”);
 for (i=0; i<3; i++)
  {for (j=0; j<5; j++)
    printf (“%5d”, a[i][j]);
    printf (“\n”);
  }
P=&a[0][0];
for(i=0;i<3;i++)
  {s=0;
    for (j=0;j<5;j++)
      {s+=*P;
        P++;
      }
    if (i==0) max=s;
    else if (max<s) max=s;
  }
printf("Максимальная сумма строки = %d",max);
}
нужно сделать этими двумя способами. После 15.00 можете не делать,ибо у меня не зачет.

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

textual
Листинг программы
// Вы проходили динамические массивы malloc и все такое?? Допустим что нет..
#include <stdio.h>
#include <locale.h> // Для русского языка. Ты в visual studio работаешь?
#include <conio.h>
void main()
{
setlocale(0,"rus");// для русского языка
int a[4][4], i, j, s, max;
printf ("Введите 4 строки по 4 чисел");
for (i=0;i<4;i++)
 for (j=0;j<4;j++)
  scanf("%d",&a[i][j]);
printf ("Матрица а :\n");
 for (i=0; i<4; i++)
  {
      for (j=0; j<4; j++)
    printf ("%5d", a[i][j]);
    printf ("\n");
  }
 // Ща найдем наименьший..
 int min = a[0][0], I=0;// Значение наименьшего и номер строки в котором он расположен
 
for(i=0;i<4;i++)  
    for (j=0;j<4;j++)
        if(a[i][j] < min)
        {
            min = a[i][j];
            I = i;
        };
int sum = 0;
for(i =0;i<4;i++)sum+=a[I][i];
 
  
printf("сумма строки = %d",sum);
 
getch();
}

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

Вот список элементов кода с соответствующими номерами:

  1. #include - подключает файл стандартного ввода/вывода, необходимый для отправки данных в консоль
  2. #include - включает функцию установки локали для поддержки русского языка
  3. #include - включает библиотеку для работы с консолью, в частности, с функцией getch(), используемой для приостановки выполнения программы до нажатия клавиши
  4. void main() - объявляет функцию main() как точку входа в программу
  5. setlocale(0,rus); - устанавливает локаль на русский язык
  6. int a[4][4], i, j, s, max; - объявляет массив a размером 4x4, а также четыре переменные для циклов (i, j, s, max)
  7. printf (Введите 4 строки по 4 чисел); - выводит приглашение для ввода данных
  8. for (i=0;i<4;i++) - начинает цикл, который будет читать 4 строки матрицы
  9. for (j=0;j<4;j++) - начинает внутренний цикл, который будет читать 4 столбца текущей строки
  10. scanf(%d,&a[i][j]); - считывает число с консоли и записывает его в соответствующий элемент матрицы
  11. printf (Матрица а :\n); - выводит шапку Матрица а :
  12. for (i=0; i<4; i++) - начинает цикл для вывода содержимого матрицы
  13. { - начало блока кода
  14. for (j=0; j<4; j++) - начинает внутренний цикл для вывода элементов текущей строки
  15. printf (%5d, a[i][j]); - выводит значение элемента матрицы, окруженное пробелами для форматирования
  16. printf (\n); - переходит на новую строку
  17. } - конец внутреннего цикла
  18. // Ща найдем наименьший.. - комментарий для пояснения кода
  19. int min = a[0][0], I=0; - объявляет переменные min и I, и инициализирует их первыми элементами матрицы (0,0)
  20. for(i=0;i<4;i++) - начинает цикл для поиска наименьшего элемента
  21. for (j=0;j<4;j++) - начинает внутренний цикл для проверки всех элементов текущей строки
  22. if(a[i][j] < min) - проверяет, является ли текущий элемент меньше текущего минимального значения
  23. { - начало блока кода
  24. min = a[i][j]; - обновляет текущее минимальное значение
  25. I = i; - обновляет номер строки, в которой находится минимальный элемент
  26. } - конец блока кода
  27. int sum = 0; - объявляет переменную sum для хранения суммы
  28. for(i =0;i<4;i++)sum+=a[I][i]; - начинает цикл для прохода по всем элементам строки с минимальным значением и суммирования их
  29. printf(сумма строки = %d,sum); - выводит результат суммы на экран
  30. getch(); - вызывает функцию getch(), чтобы приостановить выполнение программы до нажатия клавиши
  31. } - конец функции main()

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


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

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

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