Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Benzin102
0 / 0 / 0
Регистрация: 14.06.2014
Сообщений: 8
#1

Если в матрице есть нули, то заменить их суммой max и min последнего столбца - C++

15.06.2014, 07:27. Просмотров 304. Ответов 3
Метки нет (Все метки)

Дана матрица порядка n. Найти в последнем столбце max и min. Если в матрице есть нули, то заменить их суммой max и min последнего столбца
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.06.2014, 07:27     Если в матрице есть нули, то заменить их суммой max и min последнего столбца
Посмотрите здесь:

C++ Max и min в матрице
Заменить в матрице нули на пробелы C++
C++ Добавить в конец массива элементы, расположенные между min и max элементами исходного массива, исключая нули
C++ Нахождение max и min в матрице . и поменять их местами
Занулить элементы в матрице между min и max C++
Поменять местами max и min четных строк в квадратной матрице C++
В матрице 3 х 3 найти max и min значения C++
C++ Написать программу, которая найдет в матрице max и min и поменяет их местами
C++ Поиск max или min элемента указанного столбца матрицы
Не получается удалить столбец с max и min элементом в матрице C++
Поменять max и min элемент в матрице C++
Задана матрица A(n,n). Первый элемент каждого четного столбца заменить суммой простых чисел этого столбца, пер C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Max Dark
В поиске работы
 Аватар для Max Dark
1548 / 1401 / 501
Регистрация: 09.10.2013
Сообщений: 3,184
Записей в блоге: 8
Завершенные тесты: 2
15.06.2014, 11:18     Если в матрице есть нули, то заменить их суммой max и min последнего столбца #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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <stdio.h>
#include <limits.h>
#include <stdlib.h>
#include <stdbool.h>
 
typedef struct matrix {
    int  **data;
    size_t size;
}matrix;
 
bool matrix_create(matrix* self, size_t size) {
    int **data;
    data = (int**)calloc(size, sizeof(int*));
    if(NULL != data) {
        int** row_iter;
        for(row_iter = data;
            row_iter != (data+size);
            ++row_iter) {
            (*row_iter) = (int*)calloc(size, sizeof(int));
            if(NULL == *row_iter)
                break;
        }
        if(row_iter != (data+size)) {
            while(data != row_iter--) {
                free(*row_iter);
            }
            free(data);
            data = NULL;
        }
    }
    self->size = size;
    self->data = data;
    return self->data != NULL;
}
void matrix_destroy(matrix* self) {
    int **row_iter;
    for(row_iter = self->data;
        row_iter != (self->data + self->size);
        ++row_iter) {
        free(*row_iter);
    }
    free(self->data);
}
int main(int argc, char **argv) {
    matrix m = { NULL, 0 };
    if(matrix_create(&m, 42)) {
        int vmin, vmax, sum;
        vmin = INT_MAX;
        vmax = INT_MIN;
        int **row_iter;
        int  *item_iter;
        for(row_iter = m.data;
            row_iter != (m.data + m.size);
            ++row_iter) {
            if(vmin > *((*row_iter)+m.size))
                vmin = *((*row_iter)+m.size);
            if(vmax < *((*row_iter)+m.size))
                vmax = *((*row_iter)+m.size);
        }
        sum = vmin + vmax;
        for(row_iter = m.data;
            row_iter != (m.data + m.size);
            ++row_iter) {
            for(item_iter = *row_iter;
                item_iter != ((*row_iter)+m.size-1);
                ++item_iter) {
                    if(0 == *item_iter)
                        *item_iter = sum;
            }
        }
        matrix_destroy(&m);
    }
    return 0;
}
ввод-вывод сделайте сами

Добавлено через 13 минут
в main ошибка, дожнобыть как то так
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
nt main(int argc, char **argv) {
    matrix m = { NULL, 0 };
    if(matrix_create(&m, 42)) {
        int vmin, vmax, sum;
        vmin = INT_MAX;
        vmax = INT_MIN;
        int **row_iter;
        int  *item_iter;
        for(row_iter = m.data;
            row_iter != (m.data + m.size);
            ++row_iter) {
            if(vmin > *((*row_iter)+m.size-1))
                vmin = *((*row_iter)+m.size-1);
            if(vmax < *((*row_iter)+m.size-1))
                vmax = *((*row_iter)+m.size-1);
        }
        sum = vmin + vmax;
        for(row_iter = m.data;
            row_iter != (m.data + m.size);
            ++row_iter) {
            for(item_iter = *row_iter;
                item_iter != ((*row_iter)+m.size);
                ++item_iter) {
                    if(0 == *item_iter)
                        *item_iter = sum;
            }
        }
        matrix_destroy(&m);
    }
    return 0;
}
Benzin102
0 / 0 / 0
Регистрация: 14.06.2014
Сообщений: 8
15.06.2014, 11:50  [ТС]     Если в матрице есть нули, то заменить их суммой max и min последнего столбца #3
нужно в С++
nmcf
4521 / 3859 / 1296
Регистрация: 14.04.2014
Сообщений: 15,130
15.06.2014, 12:28     Если в матрице есть нули, то заменить их суммой max и min последнего столбца #4
Это он и есть.
Yandex
Объявления
15.06.2014, 12:28     Если в матрице есть нули, то заменить их суммой max и min последнего столбца
Ответ Создать тему
Опции темы

Текущее время: 21:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru