Найти сумму элементов строки матрицы, в которой расположен элемент с наименьшим значением - C (СИ)
Формулировка задачи:
Задача:В данной действительной квадратной матрице порядка n найти сумму элементов строки, в которой расположен элемент с наименьшим значением. Предполагается, что такой элемент единственный.
Нужно решить задачу по этому примеру:
Задание. Найти максимальную сумму элементов строк матрицы 3х5.
Пример программы без использования указателей:
Пример программы с использованием указателей:
нужно сделать этими двумя способами.
После 15.00 можете не делать,ибо у меня не зачет.
#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); }
Решение задачи: «Найти сумму элементов строки матрицы, в которой расположен элемент с наименьшим значением»
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(); }
Объяснение кода листинга программы
Вот список элементов кода с соответствующими номерами:
- #include
- подключает файл стандартного ввода/вывода, необходимый для отправки данных в консоль - #include
- включает функцию установки локали для поддержки русского языка - #include
- включает библиотеку для работы с консолью, в частности, с функцией getch(), используемой для приостановки выполнения программы до нажатия клавиши - void main() - объявляет функцию main() как точку входа в программу
- setlocale(0,
rus
); - устанавливает локаль на русский язык - int a[4][4], i, j, s, max; - объявляет массив a размером 4x4, а также четыре переменные для циклов (i, j, s, max)
- printf (
Введите 4 строки по 4 чисел
); - выводит приглашение для ввода данных - for (i=0;i<4;i++) - начинает цикл, который будет читать 4 строки матрицы
- for (j=0;j<4;j++) - начинает внутренний цикл, который будет читать 4 столбца текущей строки
- 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; - объявляет переменные min и I, и инициализирует их первыми элементами матрицы (0,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; - объявляет переменную sum для хранения суммы
- for(i =0;i<4;i++)sum+=a[I][i]; - начинает цикл для прохода по всем элементам строки с минимальным значением и суммирования их
- printf(
сумма строки = %d
,sum); - выводит результат суммы на экран - getch(); - вызывает функцию getch(), чтобы приостановить выполнение программы до нажатия клавиши
- } - конец функции main()
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д