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

Найти максимальный элемент строки матрицы и заменить его суммой цифр этого элемента

22.09.2019, 10:29. Показов 2359. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Программа должна находить максимальный элемент строки и заменять его суммой цифр этого элемента, а также выводить начальную матрицу и конечную
На деле же выводит только начальную
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
67
68
69
#include "stdafx.h"
#include <Windows.h>
#include <conio.h>
#include <iostream>
#include <ctime>
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL, "rus");
srand(time(NULL)); 
cout<<"Введите размерность массива"<<endl;
int m,n;
cin >> n >> m;
cout<<"Введите промежуток расположения случайных чисел"<<endl;
int a,b;
cin >> a >> b;
 int ** x = new int * [n];
    for (int i = 0; i < n; i++)
        x [i] = new int [m];
 
    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++)
            x [i][j] = ((rand()%(b-1)+a));
    cout << "Начальная матрица:" << endl << endl;
 for (int i = 0; i < n; i++)
 {
     for(int j = 0; j < m; j++)
         cout << x[i][j] << " ";
     cout << endl;
 }
int jmax,max;
for (int i = 0; i < n; i++)
{ 
      int Max = x[i][0];
      for (int j = 0; j < m; j++) 
{
    if(x[i][j]>=Max) 
    {
        Max = x[i][j];
       jmax = j;
    }
    while (max!=0)
    x[i][jmax]+=max%10;
        max /= 10;
      }
}
for (int i = 0; i < n; i++)
{ 
for (int j = 0; j < m; j++) 
{
 if(x[i][j]==x[i][jmax])
      {
          x[i][j]=x[i][jmax];
      }
}
}
    cout << "Конечная матрица:" << endl; 
 for (int i = 0; i < n; i++)
 {
     for(int j = 0; j < m; j++)
         cout << x[i][j] << " ";
     cout << endl;
 }
 getch();
 return 0;
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.09.2019, 10:29
Ответы с готовыми решениями:

Максимальный элемент каждого столбца заменить суммой цифр модуля минимального элемента матрицы
Задана матрица целых чисел B(nxm). Максимальный элемент каждого столбца заменить суммой цифр модуля...

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

В каждой строке заменить максимальный элемент суммой цифр минимального элемента
Помогите решить задачу на с++ 1. Задана матрица целых чисел A (n*m). В каждой строке заменить...

Найти максимальный элемент каждой строки матрицы и заменить его на 0
Дан двумерный массив найти максимальное число каждой строки и заменить на 0.

3
136 / 76 / 60
Регистрация: 14.09.2019
Сообщений: 218
22.09.2019, 12:21 2
Лучший ответ Сообщение было отмечено papillon83 как решение

Решение

papillon83,
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
#include "stdafx.h"
#include <Windows.h>
#include <conio.h>
#include <iostream>
#include <ctime>
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[]) {
    setlocale(LC_ALL, "rus");
    srand(time(NULL));
    cout << "Введите размерность массива" << endl;
    int m, n;
    cin >> n >> m;
    cout << "Введите промежуток расположения случайных чисел" << endl;
    int a, b;
    cin >> a >> b;
    int ** x = new int *[n];
 
    for (int i = 0; i < n; i++)
        x[i] = new int[m];
 
    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++)
            x[i][j] = ((rand() % (b - 1) + a));
    cout << "Начальная матрица:" << endl << endl;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
            cout << x[i][j] << " ";
        cout << endl;
    }
    int jmax;
    for (int i = 0; i < n; i++)
    {
        int Max = x[i][0];
        for (int j = 0; j < m; j++)
        {
            if (x[i][j] >= Max)
            {
                Max = x[i][j];
                jmax = j;
            }
        }
        x[i][jmax] = 0;
        while (Max != 0) {
            x[i][jmax] += Max % 10;
            Max /= 10;
        }
 
    }
    cout << "Конечная матрица:" << endl;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
            cout << x[i][j] << " ";
        cout << endl;
    }
    getch();
    return 0;
 
}
1
0 / 0 / 0
Регистрация: 22.02.2019
Сообщений: 112
22.09.2019, 12:28  [ТС] 3
Спасибо, программа работает, но при вводе промежутка 120-150 он создает числа , которые выходят за этот промежуток
0
7427 / 5021 / 2891
Регистрация: 18.12.2017
Сообщений: 15,694
22.09.2019, 14:25 4
Лучший ответ Сообщение было отмечено papillon83 как решение

Решение

papillon83,
C++
1
x[i][j]=rand()%(b-a+1) + a;
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.09.2019, 14:25
Помогаю со студенческими работами здесь

Найти максимальное значение элемента матрицы, указать его координаты и подсчитать сумму строки матрицы, содержащей максимальный элемент
Здраствуйте форумчане, помогите выполнить задание. Из 25 положительных, отрицательных и нулевых...

Каждый из элементов одномерного массива заменить суммой цифр этого элемента
Буду очень признателен, если поможете. Я только начал обучаться c++ и нашел такую задачку, мне...

Каждый из элементов одномерного массива заменить суммой цифр этого элемента
Буду очень признателен, если поможете. Я только начал обучаться c++ и нашел такую задачку, мне...

В каждой строке матрицы найти максимальный элемент и заменить его на противоположный
Помогите подправить задачку в каждой строке найти максимальный элемент и заменить его на...


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

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

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