Вывести сумму тех элементов каждой строки, которые расположены правее максимального и левее минимального. Кто знает как это сделать?
Вот мой бред, который вообще не работает.. уже делал все.. пытался до этого обнулить все значения, которые идут до min, и до max, а потом посчитать сумму всех элементов массива, но не работало
пока вот к чему пришел (но тоже далеко от истины!):
for(i=0;i<10;i++)
{
printf("\n");
for(j=0;j<12;j++)
{
printf(" %i ", A[i][j]);
}
}
}
min = A[0][0];
max=A[0][0];
sum=0;
for(i=0; i<n; i++){
for(j=0; j<m; j++){
if(A[i][j]< min)
min = A[i][j];
i_min = i;
j_min=j;
}
}
for(i=0; i %i", min);
printf("\n\nmax --> %i", max);
printf("\n");
printf("\n\ i_min --> %i", i_min);
printf("\n\ j_min --> %i", j_min);
printf("\n\ i_min --> %i", i_max);
printf("\n\ j_min --> %i", j_max);
C/C++
Вывести сумму тех элементов каждой строки, которые расположены правее максимального и левее минимального.
/* Я попробовал написать код, протестируйте, правильность ещё не проверял */
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int find_i_min(int A[], int size)
{
int i = 0;
for(int x = 1; x < size; x++)
{
if(A[x] < A[i]) i = x;
}
return i;
}
int find_i_max(int A[], int size)
{
int i = 0;
for(int x = 1; x < size; x++)
{
if(A[x] > A[i]) i = x;
}
return i;
}
int main()
{
const int m = 10;
const int n = 5;
int sum = 0;
int A[m][n];
srand (time(NULL));
for (int x = 0; x < m; x++)
{ /* генерация значений */
for (int y = 0; y < n; y++)
{
A[x][y] = rand() % 15;
printf("%d ", A[x][y]);
}
putchar('\n');
}
for (int x = 0; x < m; x++)
{ /* Поиск минимума и максимума */
int i_min, i_max;
i_min = find_i_min(A[x], n);
i_max = find_i_max(A[x], n);
if (i_min < i_max)
{
for (int y = 0; y < i_min; y++)
sum += A[x][y];
for (int y = i_max + 1; y < n; y++)
sum += A[x][y];
}
else if (i_min > i_max)
{
for (int y = i_max + 1; y < i_min; y++)
sum += A[x][y];
}
}
printf ("%d\n", sum);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int find_i_min(int A[], int size)
{
int i = 0;
for(int x = 1; x < size; x++)
{
if(A[x] < A[i]) i = x;
}
return i;
}
int find_i_max(int A[], int size)
{
int i = 0;
for(int x = 1; x < size; x++)
{
if(A[x] > A[i]) i = x;
}
return i;
}
int main()
{
const int m = 10;
const int n = 5;
int sum = 0;
int A[m][n];
srand (time(NULL));
for (int x = 0; x < m; x++)
{ /* генерация значений */
for (int y = 0; y < n; y++)
{
A[x][y] = rand() % 15;
printf("%d ", A[x][y]);
}
putchar('\n');
}
for (int x = 0; x < m; x++)
{ /* Поиск минимума и максимума */
int i_min, i_max;
i_min = find_i_min(A[x], n);
i_max = find_i_max(A[x], n);
if (i_min < i_max)
{
for (int y = 0; y < i_min; y++)
sum += A[x][y];
for (int y = i_max + 1; y < n; y++)
sum += A[x][y];
}
else if (i_min > i_max)
{
for (int y = i_max + 1; y < i_min; y++)
sum += A[x][y];
}
}
printf ("%d\n", sum);
return 0;
}
Задание КАКОЕ? массив определённого размера, наверное двумерный, определить мин и макс в строке каждой и там отследить условие правее мин и левее макс?? так ил я не допонял что?
Андрей Александров
Массив двумерный, размером m*n
найти сумму элементов расположенных между min и max
найти сумму элементов расположенных между min и max
Игорь Передёра
целочисленный массив или как? Как заполнен - случайно или сразу забить данные от фонаря?
Андрей Александров
https://prnt.sc/100qi3o
ВОТ часть кода и вывод) не могу чет скопировать прогу полностью в коментарий! Еще завтра посижу подумаю как делать и по строкам и по столбцам)
ВОТ часть кода и вывод) не могу чет скопировать прогу полностью в коментарий! Еще завтра посижу подумаю как делать и по строкам и по столбцам)
Андрей Александров
https://prnt.sc/100vers вот как я изначально планировал) хотя тоже не идеал программы! Но выглядит хоть правдоподобно. Всем спасибо за советы!)
Похожие вопросы
- Работа с матрицами. Нужно найти сумму элементов каждой строки. Помогите пожалуйста ????????
- С++. Упорядочить строки массива A в порядке убывания сумм цифр первого элемента каждой строки.
- С++ создать массив из элементов каждый из которых равен среднеарефметическому четных элементов каждого столбца
- Заменить нулями элементы массива, которые расположены между первым минимальным и последним максимальным элементами масси
- Найти максимальный элементы в строке матрицы
- Дан массив из N элементов (N < 1000), причем N - четное. Вставить в середину массива сумму всех элементов.
- Найти сумму нечетных элементов, стоящих на нечетных местах (то есть имеющих нечетные номера).
- Дана матрица nxn, вычислить суммы диагональных элементов( главной и побочной ) отдельно, но в одной функции на языке си.
- Ошибка с русскими символами в языке C++ программе xcode. Пропадает если указать большее количество элементов в строке.
- Как реализовать программу, в которой массив заполняется рандомно, а сумма его элементов всегда будет равна 1? С++
for(i=0; i<n; i++) {
for(j=0; j<m; j++) {
if(A[i][j]< min)
min = A[i_min = i][j_min=j];
}
}
for(i=0; i<n; i++) {
for(j=0; j max)
min = A[i_max = i][j_max=j];
}
}
но получается я опять их искал по всей матрице, а надо было по строке.
грубо говоря без j-столбцов
я пока пытаюсь понять функцию find_i_max и find_i_min, такого еще не походил)) они нужны, для того, чтобы индексы найти?
твою программу попытался запустить (компилятор у меня так себе), но выдало так (матрица 3 на 3): https://prnt.sc/zyopls