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

Заменить все минимальные элементы противоположными по значению - C++

Восстановить пароль Регистрация
 
Мария55593
0 / 0 / 0
Регистрация: 18.01.2012
Сообщений: 73
18.05.2012, 19:02     Заменить все минимальные элементы противоположными по значению #1
Помогите пожалуйста!!!
для работы с двумерными массивами арифметических типов данных разработать шаблоны ввода и вывода массива, а также шаблон для решения основной задачи:
Заменить все минимальные элементы противоположными по значению.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.05.2012, 19:02     Заменить все минимальные элементы противоположными по значению
Посмотрите здесь:

Заменить все отрицательные элементы ,не кратные 3,противоположными им числами. C++
Заменить все минимальные элементы на противоположные. C++
В матрице A(m,n) все не нулевые элементы заменить обратными по величине и противоположными по знаку C++
Заменить минимальные элементы списка числом 1 C++
C++ Заменить все минимальные элементы вектора максимальным значением его элементов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4923 / 2666 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
18.05.2012, 19:33     Заменить все минимальные элементы противоположными по значению #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
#include <iostream>
 
template <typename T>
void print(T **, int, int);
template <typename T>
void fill(T **, int, int);
template <typename T>
void convertMin(T **, int, int);
 
int main()
{
    const int M = 5, N = 3;
    int **arr = new int*[M];
    for (int i=0; i < M; i++)
        arr[i] = new int[N];
    fill(arr, M, N);
    print(arr, M, N);
    convertMin(arr, M, N);
    print(arr, M, N);
    for (int i=0; i < M; i++)
        delete []arr[i];
    delete []arr;
    return 0;
}
 
template <typename T>
void print(T **arr, int M, int N)
{
    std::cout<< std::endl;
    for (int i=0; i < M; i++)
    {
        for (int j=0; j < N; j++)
            std::cout<< arr[i][j]<< " ";
        std::cout<< std::endl;
    }
}
 
template <typename T>
void fill(T **arr, int M, int N)
{
    for (int i=0; i < M; i++)
        for (int j=0; j < N; j++)
            std::cin>> arr[i][j];
}
 
template <typename T>
void convertMin(T **arr, int M, int N)
{
    T min = arr[0][0];
    for (int i=0; i < M; i++)
        for (int j=0; j < N; j++)
            if (arr[i][j] < min) min = arr[i][j];
    for (int i=0; i < M; i++)
        for (int j=0; j < N; j++)
            if (arr[i][j] == min) arr[i][j] *= -1;
}
Мария55593
0 / 0 / 0
Регистрация: 18.01.2012
Сообщений: 73
18.05.2012, 19:58  [ТС]     Заменить все минимальные элементы противоположными по значению #3
Скажите почему у меня программка не компилируется???
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4923 / 2666 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
18.05.2012, 20:12     Заменить все минимальные элементы противоположными по значению #4
Цитата Сообщение от Мария55593 Посмотреть сообщение
Скажите почему у меня программка не компилируется???
Ну , звезды говорят, что у вас в компьютере живет злобный гномик, которого вы не кормили молоком и печеньем, и теперь он не дает компилятору нормально обработать код.

А возможно, я бы смог лучше разобраться в сием вопросе, если видел бы код ошибки.

P.S. код вобще рабочий
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
18.05.2012, 20:34     Заменить все минимальные элементы противоположными по значению #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
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <algorithm>
 
 
template<typename Type, std::size_t N, std::size_t M>
std::istream & operator >>(std::istream & istream, Type (&matrix)[N][M]) {
    for (std::size_t i = 0; i != N; ++i) {
        for (std::size_t j = 0; j != M; ++j) {
            istream >> matrix[i][j];
        }
    }
    return istream;
}
 
template<typename Type, std::size_t N, std::size_t M>
std::ostream & operator <<(std::ostream & ostream, Type (&matrix)[N][M]) {
    for (std::size_t i = 0; i != N; ++i) {
        for (std::size_t j = 0; j != M; ++j) {
            ostream << matrix[i][j] << " ";
        }
        ostream << std::endl;
    }
    return ostream;
}
 
template<typename Type, std::size_t N, std::size_t M>
void invert_mins(Type (&matrix)[N][M]) {
    Type min = *std::min_element(&matrix[0][0], &matrix[0][0] + N * M);
    std::replace(&matrix[0][0], &matrix[0][0] + N * M, min, -min);
}
 
 
int main() {
    std::size_t const N = 4;
    std::size_t const M = 5;
    int matrix[N][M];
    std::cin >> matrix;
    invert_mins(matrix);
    std::cout << matrix;
}
Мария55593
0 / 0 / 0
Регистрация: 18.01.2012
Сообщений: 73
18.05.2012, 20:49  [ТС]     Заменить все минимальные элементы противоположными по значению #6
Ну если хотите посмотреть, то приходите в гости!!!А если серьёзно, то мой компилятор называется DEV C++ при компилировании открывается окно:Compile Progress и в нём есть выделенная строка Status: Done
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4923 / 2666 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
18.05.2012, 21:23     Заменить все минимальные элементы противоположными по значению #7
Мария, всенепременно, при условии, что вкусно накормите.
Вот, компилятор Dev C++
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.05.2012, 22:20     Заменить все минимальные элементы противоположными по значению
Еще ссылки по теме:

Заменить все отрицательные элементы последовательности не кратные 3 противоположными им числам C++
C++ Заменить все минимальные элементы одномерного массива на противоположные
C++ В матрице все ненулевые элементы заменить обратными по величине и противоположными по знаку

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

Или воспользуйтесь поиском по форуму:
Мария55593
0 / 0 / 0
Регистрация: 18.01.2012
Сообщений: 73
18.05.2012, 22:20  [ТС]     Заменить все минимальные элементы противоположными по значению #8
Я люблю готовить!!!Особенно для кого то!!!А вы где живёте??
Yandex
Объявления
18.05.2012, 22:20     Заменить все минимальные элементы противоположными по значению
Ответ Создать тему
Опции темы

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