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

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

02.09.2010, 20:34. Показов 2662. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru