Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Арман Азаматов
0 / 0 / 0
Регистрация: 11.02.2017
Сообщений: 11
1

В матрице последний нуль каждой строки заменить на заданное число

02.03.2017, 18:45. Просмотров 377. Ответов 9
Метки нет (Все метки)

Помогите решить задачу в С++, массивы
Написать два варианта программы: без применения указателей и с указателями. C++
 Комментарий модератора 
П.5.18.Правил
Запрещено размещать задания и решения в виде картинок и других файлов с их текстом.

Заменить последний нуль каждой строки матрицы на 5.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2017, 18:45
Ответы с готовыми решениями:

Массивы и указатели. Заменить последний нуль в каждой строке на 5
Задана матрица Q(5,5). Заменить последний нуль в каждой строке на 5. можно более по простому......

В заданной матрице заменить максимальный элемент каждой строки на такой же с противоположным знаком
Дан двумерный массив размера 5х6, заполненный случайным образом. Заменить максимальный элемент...

Заменить числа последовательности, превышающие заданное число, на заданное число
решите..а то вообще не понимаю..

Заменить последний нуль в каждой строке на 5
Привет, прошу помощи с написанием программы по заданному заданию: "Задана матрица Q(5,5)....

Задана матрица Q(5,5). Заменить последний нуль в каждой строке на 5.
Задана матрица Q(5,5). Заменить последний нуль в каждой строке на 5.

9
DevAlone
325 / 277 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
Завершенные тесты: 4
02.03.2017, 19:04 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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <vector>
 
using std::cout;
using std::endl;
using std::cin;
 
int main()
{
    std::vector<std::vector<int> > matrix = {
        { 1, 2, 3, 4, 0 },
        { 1, 2, 0, 4, 1 },
        { 0, 2, 3, 4, 0 },
        { 1, 0, 0, 0, 1 },
        { 1, 2, 0, 4, 1 },
    };
 
    for(auto &row : matrix) {
        for(int value : row) {
            cout << value << " ";
        }
        cout << endl;
    }
    cout << endl;
 
    for(auto &row : matrix) {
        auto it = row.rbegin();
        for( ; it != row.rend(); it++) {
            if(*it == 0) {
                *it = 5;
                break;
            }
        }
    }
 
    cout << endl;
    for(auto &row : matrix) {
        for(int value : row) {
            cout << value << " ";
        }
        cout << endl;
    }
 
    return 0;
}
0
Арман Азаматов
0 / 0 / 0
Регистрация: 11.02.2017
Сообщений: 11
03.03.2017, 11:53  [ТС] 3
Выдает ошибку
0
MrGluck
Форумчанин
Эксперт CЭксперт С++
8142 / 4993 / 1436
Регистрация: 29.11.2010
Сообщений: 13,460
03.03.2017, 12:36 4
Цитата Сообщение от Арман Азаматов Посмотреть сообщение
Выдает ошибку
Исправьте строку с ошибкой, очевидно же (ровно как и нам место возникновения ошибки на вашем компьютере).

На всякий случай

Добавлено через 5 минут
С помощью указателей:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
int main()
{
    constexpr size_t N = 5;
    int arr[N][N] = {
        { 1, 2, 3, 4, 0 },
        { 1, 2, 0, 4, 1 },
        { 0, 2, 3, 4, 0 },
        { 1, 0, 0, 0, 1 },
        { 1, 2, 0, 4, 1 },
    };
 
    for (int *p = arr[0]; p < arr[N]; p += N)
        *(p + N - 1) = 0;
 
    for (const auto &p : arr)
    {
        for (const auto &x : p)
            std::cout << x << " ";
        std::cout << std::endl;
    }
}
Добавлено через 2 минуты
Или даже так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
int main()
{
    constexpr size_t N = 5;
    int arr[N][N] = {
        { 1, 2, 3, 4, 0 },
        { 1, 2, 0, 4, 1 },
        { 0, 2, 3, 4, 0 },
        { 1, 0, 0, 0, 1 },
        { 1, 2, 0, 4, 1 },
    };
 
    for (int *p1 = arr[0]; p1 < arr[N]; p1 += N)
    {
        *(p1 + N - 1) = 0;
        for (int *p2 = p1; p2 < p1 + N; ++p2)
            std::cout << *p2 << " ";
        std::cout << std::endl;
    }
}
0
03.03.2017, 12:36
likehood
996 / 836 / 399
Регистрация: 25.12.2016
Сообщений: 2,745
Завершенные тесты: 3
03.03.2017, 12:50 5
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
#include <iostream>
 
int main()
{
    const int N = 5;
    int a[N][N] = {
        { 1, 2, 3, 4, 0 },
        { 1, 2, 0, 4, 1 },
        { 0, 2, 3, 4, 0 },
        { 1, 0, 0, 0, 1 },
        { 1, 2, 0, 4, 1 },
    };
 
    for (int i = 0; i < N; i++)
        for (int j = N-1; j >= 0; j--)
        {
            if (a[i][j] == 0) {
                a[i][j] = 5;
                break;
            }
        }
 
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < N; j++)
            std::cout << a[i][j] << ' ';
        std::cout << '\n';
    }
}
0
MrGluck
Форумчанин
Эксперт CЭксперт С++
8142 / 4993 / 1436
Регистрация: 29.11.2010
Сообщений: 13,460
03.03.2017, 13:04 6
У меня неверно код написан - прочитал задание как "поменять последний элемент в строке на нуль". Но так даже лучше - пусть ТС своими силами уже по примеру подправит для указателей.
0
Арман Азаматов
0 / 0 / 0
Регистрация: 11.02.2017
Сообщений: 11
17.03.2017, 08:42  [ТС] 7
Задана матрица 5х5, последний нуль каждой строки заменить на 5.
 Комментарий модератора 
П.5.18.Правил
Запрещено размещать задания и решения в виде картинок и других файлов с их текстом.
Редактор формул внизу страницы


Помогите сделать задание, только надо написать с применением указателей, без применения уже есть программа.
0
sk007
Life Builder
511 / 482 / 369
Регистрация: 12.01.2011
Сообщений: 1,693
Завершенные тесты: 7
17.03.2017, 08:53 8
C++
1
2
3
4
5
6
7
8
9
10
11
for(int i = 0; i<5; i++)
{
    for(int j = 4; j>-1; j--)
    {
        if(Q[i][j]==0)
        {
            Q[i][j] = 5;
            break;
        }
    }
}
0
Арман Азаматов
0 / 0 / 0
Регистрация: 11.02.2017
Сообщений: 11
17.03.2017, 08:57  [ТС] 9
а полностью можно?

Добавлено через 2 минуты
это с указателями? А тогда без указателей как
0
zss
Модератор
Эксперт С++
9040 / 7844 / 4836
Регистрация: 18.12.2011
Сообщений: 20,896
Завершенные тесты: 1
17.03.2017, 09:13 10
См. образец
Образцы (шаблоны) программ для типовых задач
Заменить функцию
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
//
// пример обработки матрицы - последний нуль каждой строки заменить на 5
//
void Process( int ** M,size_t n, size_t m ) {
    for ( size_t i = 0; i < n; ++i ) {
        for ( size_t j = m-1; j >0; ++j ) {
            if(M[i][j]==0)
            {
                M[i][j]=5;break;
            }
        }
    }
}
0
17.03.2017, 09:13
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.03.2017, 09:13

Задана матрица А (5*5). Заменить последний нуль в каждой строке на 5
Задана матрица А (5*5). Заменить последний нуль в каждой строке на 5. Ну пойму, последний, т.е....

Заменить последний элемент каждой строки матрицы суммой предыдущих элементов той же строки
Преобразовать исходную матрицу A(MxN) так, чтобы последний элемент каждой строки был заменен суммой...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.