Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
1 / 1 / 0
Регистрация: 29.08.2010
Сообщений: 7

От значений элементов каждой строки двумерного массива вычесть значение минимального элемента этой строки

02.09.2010, 20:34. Показов 2695. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
От значений элементов каждой строки двумерного массива вычесть значение минимального элемента этой строки.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.09.2010, 20:34
Ответы с готовыми решениями:

8. Найти среднее арифметическое элементов каждой строки матрицы Q(l,m) и вычесть его из элементов этой строки
желательно с коментариями

Найти среднее арифметическое элементов каждой строки матрицы Q (l, m) и вычесть его от элементов этой строки
Найти среднее арифметическое элементов каждой строки матрицы Q (l, m) и вычесть его от элементов этой строки.Помогите пожалуйста. ...

Вычесть среднее арифметическое элементов каждой строки матрицы из элементов этой строки
Среднее арифметическое элементов каждой строки матрицы я нашел, но как его вычесть не могу разобрать using System; using...

13
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
02.09.2010, 21:34
Разбирайтесь

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <iostream>
#include <ctime>
#include <iomanip>
#include <vector>
#include <algorithm>
#include <iterator>
 
int rnd ()
{
    return rand()%50;
}
 
void show (int x)
{
    std::cout << std::setw(3) << x;
}
 
int main (void)
{
    const int SIZE=5;
    int MAS[SIZE][SIZE];
    // fill and output
    srand (time (NULL));
    std::cout << "Start matrix:\n";
    for (int i=0; i<SIZE; i++)
    {
        std::generate_n (MAS[i], SIZE, rnd);
        std::for_each (MAS[i], MAS[i]+SIZE, show);
        std::cout << std::endl;
    }
    std::cout << "\n\n";
    //
    int max;
    for (int i=0; i<SIZE; i++)
    {
        max=*std::min_element (MAS[i], MAS[i]+SIZE);
        for (int j=0; j<SIZE; j++, MAS[i][j]-=max);
    }
 
    // output
    std::cout << "Finish matrix:\n";
    for (int i=0; i<SIZE; i++)
    {
        std::for_each (MAS[i], MAS[i]+SIZE, show);
        std::cout << std::endl;
    }
    // exit
    return 0;
}
1
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
02.09.2010, 21:56
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
 
#define ROWS 4
#define COLS 5
 
void exchange(int **mas)
{
    int min;
    int i, j;
    
    for (i = 0; i < ROWS; i++)
    {
        min = mas[i][0];
        
        for (j = 0; j < COLS; j++)
            if (mas[i][j] < min)
                min = mas[i][j];
 
        for (j = 0; j < COLS; j++)
            mas[i][j] -= min;
    }
}
 
int main()
{
    int **mas;
    int i, j;
    
    mas = (int **)malloc(ROWS * sizeof(int *));
    
    for (i = 0; i < ROWS; i++)
        mas[i] = (int *)malloc(COLS * sizeof(int));
    
    srand(time(NULL));
    
    printf("Ishodniy massiv:\n\n");
    
    for (i = 0; i < ROWS; i++)
    {
        for (j = 0; j < COLS; j++)
        {
            mas[i][j] = -10 + rand() % 21;
            printf("%3d  ", mas[i][j]);
        }
 
        printf("\n");
    }
    
    exchange(mas);
    
    printf("\n\nIzmenyonniy massiv:\n\n");
 
    for (i = 0; i < ROWS; i++)
    {
        for (j = 0; j < COLS; j++)
            printf("%3d  ", mas[i][j]);
 
        printf("\n");
    }
    
    getch();
    return 0;
}
1
 Аватар для TheMachinist
246 / 178 / 47
Регистрация: 14.06.2010
Сообщений: 422
02.09.2010, 22:19
Я тут немного поупражнялся и написал алгоритмик для одного ряда массива.
По-моему для всего массива написать не так уж сложно если потратить минут 15

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <conio.h>
using namespace std;
 
int main()
{
    
int Arr[5][5];
Arr[0][0] = 3; Arr[0][1] = 5; Arr[0][2] = 7; Arr[0][3] = 1; Arr[0][4] = 10;
 
int i = 1;
int min = Arr[0][0] < Arr[0][0+i] ? Arr[0][0] : Arr[0][0+i];
for(i = 2;i < 5;i++)
{
    min = min < Arr[0][0+i] ? min : Arr[0][0+i];
}
cout << min << endl;
for(i = 0;i < 5;i++)
{
    Arr[0][i] -= min;
    cout << Arr[0][i] << " ";
}
 
 
    _getch();
}
1
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
02.09.2010, 22:27
NikolaWhite,
Извините, не сдержался... какую цель вы преследовали, когда писали Arr[0][0+i]? Меня интересует 0+i...
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
02.09.2010, 22:30
gangstaboy, решение neske в виде отдельной функции:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <algorithm>
#include <cstddef>
 
// Вычитает из каждого элемента строки значение
// минимального элемента строки
template<std::size_t n, std::size_t m>
void SubstractMinimum(int (&matrix)[n][m]) {
  for (std::size_t i = 0; i < n; ++i) {
    int min = *std::min_element(matrix[i], matrix[i] + m);
    for (std::size_t j = 0; j < m; ++j)
      matrix[i][j] -= min;
  }
}
1
 Аватар для TheMachinist
246 / 178 / 47
Регистрация: 14.06.2010
Сообщений: 422
02.09.2010, 22:49
какую цель вы преследовали, когда писали Arr[0][0+i]? Меня интересует 0+i...
Элементарно min сравнивается со следующим элементом массива.
Я это больше для собственной практики писал, а потом решил что мой вариант для gangstaboyя просто
понятнее будет
0
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
02.09.2010, 23:01
Цитата Сообщение от NikolaWhite Посмотреть сообщение
Элементарно min сравнивается со следующим элементом массива.
Я это больше для собственной практики писал, а потом решил что мой вариант для gangstaboyя просто
понятнее будет
Все это хорошо, но 0 + i = i. Почему бы не написать просто Arr[0][i]
0
02.09.2010, 23:06

Не по теме:

neske, CyBOSSeR издеваетесь как можете над бедными студентами :D

0
02.09.2010, 23:15

Не по теме:

ISergey, мы ж из лучших побуждений:)
А то они все ручками да ручками, велосипед за велосипедом:)

0
02.09.2010, 23:22

Не по теме:

CyBOSSeR,
Знаете, а не такое уж это и бесполезное занятие - изобретать велосипед... Изобретая велосипед, понимаешь многие вещи, о которых просто не задумывался до того, как начал его изобретать)))

0
02.09.2010, 23:30

Не по теме:

silent_1991, Конечно. Но вы же не изобретаете велосипед для подсчета длины строки, возведения в степень, сравнения строк (в основном) и так далее. Не так-ли?) Так почему бы не юзать стл так же как привычные функции?

0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
02.09.2010, 23:48
C
1
Lavroff
,
Вчера я например писал функцию для вычисления корня n-ой степени, для задачи, где нельзя было пользоваться math.h... Фишка в том, что в таких простеньких задачках как раз-таки запрещается использовать библиотечные функции, и делается это с одной простой целью - научить людей программировать на простых примерах...
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
03.09.2010, 00:23
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <cstdlib>
#include <vector> 
#include <algorithm>
#include <iterator>
#include <iostream>
#include <functional>
 
typedef vector<unsigned> VInt;
typedef vector<VInt> VVInt;
typedef VVInt::const_iterator VVIntIt;
typedef VVInt::iterator VVIntit;
 
unsigned _rand(){ return rand() % 100; }
 
const unsigned nX = 5, nY = 10;
 
int main(){
  VVInt v( nY );
  VVIntit it = v.begin();
  VVIntIt end = v.end();
  unsigned nMin;
  for( ;it!=end;++it ){
    it->resize( nX );
    generate( it->begin(), it->end(), _rand );
    copy( it->begin(), it->end(), ostream_iterator<unsigned>(cout," ") );
    cout << endl;
  }
  for( it = v.begin(), nMin = it->front();it!=end;++it ){
    nMin = min( nMin, *min_element( it->begin(), it->end() ) );
  }
  cout << "=========\n" << nMin << "\n=========\n";
  for( it = v.begin();it!=end;++it ){
    transform( it->begin(), it->end(), it->begin(), bind2nd( minus<unsigned>(), nMin ) );
    copy( it->begin(), it->end(), ostream_iterator<int>(cout," ") );
    cout << endl;
  }  
}
Добавлено через 38 секунд
silent_1991, не для тех, кто сюда обычно стучится
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.09.2010, 00:23
Помогаю со студенческими работами здесь

Нахождение минимального значения среди элементов каждой строки двумерного массива
Помогите разобраться в задаче. Составить программу нахождения минимального значения среди элементов каждой строки двумерного массива....

Для каждой строки матрицы определить произведение элементов, меньших последнего элемента этой строки
Для каждой строки матрицы определить произведение элементов,меньших последнего элемента этой строки

Для каждой строки матрицы определить число элементов, больших первого элемента этой строки
Для каждой строки матрицы определить число элементов, больших первого элемента этой строки. (Считает только для последней строки,...

Массив: Найти среднее арифметическое в каждой строке матрицы A и вычесть его из всех элементов этой строки...
Разработать программу для решения задачи. Протестировать разработанную программу методом эквивалентного разбиения. Размерность матриц...

Из каждого положительного элемента массива А 4×5 вычесть, а к каждому отрицательному элементу прибавить среднее значение элементов данной строки.
Задача: Из каждого положительного элемента массива А 4×5 вычесть, а к каждому отрицательному элементу прибавить среднее значение...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru