Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 08.09.2017
Сообщений: 40
1

Разделить все положительные элементы массива на его макс. или мин. элемент

03.11.2017, 20:05. Показов 2625. Ответов 5
Метки нет (Все метки)

Здравствуйте, написал программу однако не могу исправить ошибку в деление элементов, буду благодарен, если исправите. Минимальный и максимальный элемент нахожу, однако при деление выдает 1 на всех элементах, пытался 2 способами однако все равно выводит 1. Нужно вывести каждый элемент массива, деленный на выбранный элемент:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    switch (num) {
    case 1:
        cout << "Элементы массива деленные на мин.элемент: ";
        for (int i = 0; i < n; i++) {
            c[i] /= min;
            delmin = min;
            cout << delmin << ", ";
        }
        break;
    case 2:
        cout << "Элементы массива деленные на макс.элемент: ";
        for (int i = 0; i < n; i++) {
            delmax = c[i] / max;
        }
        cout << delmax << ", ";
        break;
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.11.2017, 20:05
Ответы с готовыми решениями:

Если разница между макс. и мин. элементами массива >20, то все элементы / 2, иначе все элементы +10
Если в массиве разница между максимальным и минимальным значением больше 20, то все элементы...

Разделить все элементы массива на его первый элемент
Задание. Сделать это задание: Дан массив целых чисел. а) Разделить все элементы массива на его...

Разделить все элементы массива на его максимальный элемент
Ребят, помогите пожалуйста.:boredom: 1.разделить все элементы массива на максимальный элемент...

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

5
Модератор
Эксперт Python
28998 / 15787 / 3138
Регистрация: 12.02.2012
Сообщений: 25,931
Записей в блоге: 4
03.11.2017, 20:22 2
А где поиск максимума и минимума?
1
0 / 0 / 0
Регистрация: 08.09.2017
Сообщений: 40
03.11.2017, 20:26  [ТС] 3
Catstail,
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
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int main()
{
    setlocale(LC_CTYPE, "rus");
    const int n = 15;
    int c[n];
    cout << "Введите элементы массива:\n";
    for (int i = 0; i < n; i++) {
        cout << "c[" << i << "]= ";
        cin >> c[i];
    }
    cout << "\n\n";
    cout << "Ваш массив: ";
    for (int i = 0; i < n; i++) {
        cout<<c[i] << ", ";
    }
    cout << "\n";
    int max = c[0];
    int min = c[0];
    for (int i = 0; i < n; i++) {
        if (min > c[i]) {
            min = c[i];
        }
        if (max < c[i]) {
            max = c[i];
        }
    }
    cout << "Максимальный элемент:" << max << "\n";
    cout << "Минимальный элемент: " << min << "\n";
    int num;
    float delmin, delmax;
    cout << "Поделить на мин.элемент(Введите 1);\n Поделить на макс.элемент (Введите 2);\nВвод: ";
    cin >> num;
    switch (num) {
    case 1:
        cout << "Элементы массива деленные на мин.элемент: ";
        for (int i = 0; i < n; i++) {
            c[i] /= min;
            delmin = min;
            cout << delmin << ", ";
        }
        break;
    case 2:
        cout << "Элементы массива деленные на макс.элемент: ";
        for (int i = 0; i < n; i++) {
            delmax = c[i] / max;
        }
        cout << delmax << ", ";
        break;
    default:
        cout << "Вы должны ввести число 1 или 2! Error!\n";
    }
    return 0;
}
0
4192 / 2734 / 396
Регистрация: 01.06.2013
Сообщений: 5,747
Записей в блоге: 9
03.11.2017, 20:39 4
Ну, раз min max уже нашли, то
C++
1
2
3
4
5
6
7
8
9
10
    switch (num) {
    case 1:
        cout << "Элементы массива деленные на мин.элемент: ";
        arrayOut(c,n,min);
        break;
    case 2:
        cout << "Элементы массива деленные на макс.элемент: ";
        arrayOut(c,n,max);
        break;
    }
И вспомогательная функция
C++
1
2
3
4
5
6
7
8
template<class T> void arrayOut(T* c, int sz, T divizor)
{
        for (int i = 0; i < sz; i++) {
            if(i>0)
                cout << ", ";
            cout << c[i] / divizor;
        }
}
Добавлено через 2 минуты
Gnomee, в 23-ей строчке вашего кода можно for (int i = 1; i < n; i++)
1
0 / 0 / 0
Регистрация: 08.09.2017
Сообщений: 40
03.11.2017, 20:44  [ТС] 5
KolodeznyDiver, А как это преобразить без функции? Ибо не полностью понимаю что значит данный строка:
C++
1
template<class T> void arrayOut(T* c, int sz, T divizor)
0
4192 / 2734 / 396
Регистрация: 01.06.2013
Сообщений: 5,747
Записей в блоге: 9
03.11.2017, 20:50 6
Лучший ответ Сообщение было отмечено Gnomee как решение

Решение

Gnomee, я, когда это писал, не видел ещё вашего второго кода и не знал какой тип у массива с.
Для int будет
C++
1
2
3
4
5
6
7
8
void arrayOut(int* c, int sz, int divizor)
{
        for (int i = 0; i < sz; i++) {
            if(i>0)
                cout << ", ";
            cout << c[i] / divizor;
        }
}
Можете, конечно, продублировать код из функции в обеих ветках switch (num), но лучше повторяющийся код выносить в отдельные функции, как я предложил.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.11.2017, 20:50

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Дан массив V (N,M) . Разделить все его положительные элементы, расположенные выше главной диагонали, на среднее значение элементов массива
Помогите решить . Дан массив V(N,M). Разделить все его положительные элементы, расположенные выше...

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

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

Дан массив размера 10. Переставить в обратном порядке элементы массива, расположенные между его мин. и макс. значениями
Здравствуйте, помогите пожалуйста.:resent: Задача: Дан массив размера 10 Переставить в обратном...


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

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

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