0 / 0 / 0
Регистрация: 04.11.2021
Сообщений: 23
1

Разделить все элементы массива на наибольший по модулю элемент

24.12.2021, 14:35. Показов 1133. Ответов 3

Author24 — интернет-сервис помощи студентам
Дан действительный массив размерностью n*m, в которой не все элементы равны нулю. Получить новый массив путем деления всех элементов данного массива на ее больший по модулю элемент.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.12.2021, 14:35
Ответы с готовыми решениями:

Дан массив А (15). Разделить все элементы на наибольший элемент массива (не равен нулю)
Дан массив А (15). Разделить все элементы на наибольший элемент массива (не равен нулю).

Разделить все элементы матрицы на ее наибольший по модулю элемент
Дана действительная матрица nxm, в которой не все элементы равны нулю. Получить новую матрицу путем...

Разделить все элементы заданной матрицы на ее наибольший по модулю элемент
Здравствуйте, подскажите как сделать пожалуйста Заданная действительная матрица размера n * m, в...

Разделить все элементы данной матрицы на ее наибольший по модулю элемент
Дана матрица А. Получить новую матрицу путем деления всех элементов данной матрицы на ее...

3
3270 / 1489 / 469
Регистрация: 01.06.2021
Сообщений: 5,023
24.12.2021, 15:02 2
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
#include <cstdlib>
#include <ctime>
using namespace std;
 
int main()
{
    srand(time(nullptr));
    
    const int n = 10;
    const int m = 5;
    const double r_min = -100.;
    const double r_max = 100.;
    
    double M[n][m];
    
    for (int i = 0; i < n; ++i)
        for (int j = 0; j < m; ++j)
            M[i][j] = rand() / static_cast<double>(RAND_MAX) * (r_max - r_min) + r_min;
    
    double max = abs(M[0][0]);
    
    for (int i = 0; i < n; ++i)
        for (int j = 0; j < m; ++j)
            if (abs(M[i][j]) > max)
                max = abs(M[i][j]);
    
    for (int i = 0; i < n; ++i)
        for (int j = 0; j < m; ++j)
            M[i][j] /= max;
    
}
Добавлено через 2 минуты
BofLin, вероятность, что наибольший элемент массива будет 0 равна нулю, хотя такое событие не является невозможным. Тем не менее, не вижу смысла бояться деления на ноль.
2
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
25.12.2021, 12:25 3
Цитата Сообщение от Royal_X Посмотреть сообщение
if (abs(M[i][j]) > max)
max = abs(M[i][j]);
так находится не максимальный по модулю, а модуль максимального по модулю
2
3270 / 1489 / 469
Регистрация: 01.06.2021
Сообщений: 5,023
25.12.2021, 15:19 4
Лучший ответ Сообщение было отмечено BofLin как решение

Решение

Yetty, т.е. вы поняли условие так, что нужно найти максимальный по модулю элемент массива, но потом нужно поделить все элементы массива на этот элемент, а не этот элемент по модулю? Я понял условие иначе, поэтому сделал так, как сам понял.

Вот, другой вариант:

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
#include <cstdlib>
#include <ctime>
using namespace std;
 
int main()
{
    srand(time(nullptr));
    
    const int n = 3;
    const int m = 3;
    const double r_min = -100.;
    const double r_max = 100.;
    
    double M[n][m];
    
    for (int i = 0; i < n; ++i)
        for (int j = 0; j < m; ++j)
            M[i][j] = rand() / static_cast<double>(RAND_MAX) * (r_max - r_min) + r_min;
            
    int max[2] = {0, 0};
    
    for (int i = 0; i < n; ++i)
        for (int j = 0; j < m; ++j)
            if (abs(M[i][j]) > abs(M[max[0]][max[1]]))
            {
                max[0] = i;
                max[1] = j;
            }
            
    double meow = M[max[0]][max[1]];
    
    for (int i = 0; i < n; ++i)
        for (int j = 0; j < m; ++j)
            M[i][j] /= meow;
        
}
1
25.12.2021, 15:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.12.2021, 15:19
Помогаю со студенческими работами здесь

Разделить каждый элемент массива целых чисел, в котором не все элементы равны нулю, в крупнейший по модулю эл
Разделить каждый элемент массива целых чисел, в котором не все элементы равны нулю, в крупнейший по...

Поделить все элементы каждой строки массива на наибольший по модулю элемент этой строки
Дан массив размерностью nхm. Поделить все элементы каждой строки на наибольший по модулю элемент...

Поделить все элементы каждой строки массива на наибольший по модулю элемент этой строки
Дан массив размерностью n*m. Поделить все элементы каждой строки на наибольший по модулю элемент...

В массиве все элементы разделить на наибольший элемент
В массиве К вещественных чисел размером m*n, где m=2, n=3. В массиве все элементы разделить на...

все элементы матрицы разделить на этот наибольший элемент
Если наибольший элемент матрицы расположен в четной строке и нечетном столбце, то все элементы...

Разделить все элементы данной матрицы на ее больший по модулю элемент
Дан действительный массив размерностью n*m, в которой не все элементы равны нулю. Получить новый...

Разделить все элементы матрицы на элемент, наибольший по абсолютной величине.
написать в паскале прогу: дан двухмерный массив размером M*N. преобразовать его по правилу:...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru