Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/25: Рейтинг темы: голосов - 25, средняя оценка - 4.64
12 / 12 / 0
Регистрация: 24.03.2019
Сообщений: 70
1

Ошибка "переопределение"

31.12.2019, 05:48. Показов 4823. Ответов 4

Author24 — интернет-сервис помощи студентам
В одномерном массиве, состоящем из n вещественных элементов, вычислить:
а) количество элементов, значение которых принадлежит диапазону от 5 до 10 включительно. Если таких элементов нет, вывести об этом сообщение;
б) сумму элементов, расположенных после минимального элемента.
Пробовал запустить, не работает. Что исправить не понимаю.

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 <iostream>
#include <math.h>
using namespace std;
 
int main()
{
    setlocale(0, "Russian");
 
    cout << "Введите количество элементов массива\n";
    int p;
    cin >> p;
 
    double *mas;
    mas = new double[p];
 
    cout << "Заполните массив\n";
    for (int i = 0; i < p; i++)
        cin >> mas[i];
 
    cout << "Введите диапозон\n";
    int a, b;
    cin >> a >> b;
 
    int k = 0, iMin = 0;
    double Min = mas[0];
    /*В этом цикле находим количество элементов массива,лежащих в заданном диапозоне,
    а также номер минимального элемента массива*/
    for (int i = 0; i < p; i++)
    {
        if ((mas[i] > a) && (mas[i] < b))
            k++;
 
        if (mas[i] > Min)
        {
            Min = mas[i];
            iMin = i;
 
        }
    }
 
    double sum = 0;
    //Считаем сумму элементов массива, лежащих после минимального элемента
    for (int i = iMin + 1; i < p; i++)
        sum += mas[i];
 
    cout << "Количество элементов, лежащих в диапозоне от " << a << " до " << b << " равно " << k << endl;
    cout << "Сумма элементов массива, расположенных после минимального элемента равна " << sum << endl;
 
    double Min;
    // Сортируем массив по убыванию модулей элементов
    for (int i = 0; i < p - 1; i++)
    {
        for (int j = i + 1; j < p; j++)
 
            if (fabs(mas[i]) < fabs(mas[j]))
            {
 
                Min = mas[i];
                mas[i] = mas[j];
                mas[j] = Min;
            }
 
    }
 
    cout << "Упорядоченный массив:\n";
 
    for (int i = 0; i < p; i++)
        cout << mas[i] << "\t";
 
    delete[] mas;
 
    return 0;
 
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.12.2019, 05:48
Ответы с готовыми решениями:

Ошибка. Переопределение параметров в функции
Добрый вечер всем! Такая задача: Необходимо составить программу для систем счисления (от 2 до 36)...

Ошибка C2086: переопределение в MVS 2022
Есть такие вот хедер и файл реализации. Почему-то при компиляции студия ругается: SCamera camera:...

Ошибка: переопределение; различные базовые типы
Доброго времени суток! выдает ошибку error C2371: a: переопределение; различные базовые типы. Не...

Переопределение параметра по умолчанию. Параметр один. ошибка
Возникает ошибка: Не знаю, как быть. #include &quot;stdafx.h&quot; #include&lt;iostream&gt; using...

Ошибка C2371 int32_t: переопределение, различные базовые типы
Разбираюсь в чужем проекте. Проект работал в Qt и возможно на Linux. Хочу запустить его в VS2015....

4
Модератор
2639 / 1751 / 920
Регистрация: 16.10.2013
Сообщений: 5,067
Записей в блоге: 14
31.12.2019, 05:51 2
Sergey Komarevi, 49 строку убрать
1
12 / 12 / 0
Регистрация: 24.03.2019
Сообщений: 70
31.12.2019, 05:58  [ТС] 3
упс, убрал, а про диапазон? программа сама диапазон выдает , а мне надо от 5 до 10 включительно.
0
Модератор
2639 / 1751 / 920
Регистрация: 16.10.2013
Сообщений: 5,067
Записей в блоге: 14
31.12.2019, 06:06 4
Sergey Komarevi, 49 строку убрать
Цитата Сообщение от Sergey Komarevi Посмотреть сообщение
программа сама диапазон выдает
что она выдает? пользователь же вводит
0
85 / 34 / 20
Регистрация: 15.12.2019
Сообщений: 88
31.12.2019, 08:33 5
Лучший ответ Сообщение было отмечено Sergey Komarevi как решение

Решение

Цитата Сообщение от Sergey Komarevi Посмотреть сообщение
упс, убрал, а про диапазон? программа сама диапазон выдает , а мне надо от 5 до 10 включительно.
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
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <iostream>
#include <math.h>
#include <string>
using namespace std;
 
template <class TXT, class NUM> void input_s(NUM& arg, TXT message, float min  = NULL, float max = NULL, TXT message_error = "Некорректный ввод.\n")  //функция безопасного ввода int, float, double
{
    NUM _buffer; bool error = true;
    {
        while (error)    // выполнение ввода до тех пор, пока будут ошибки
        {
            cout << message; cin >> _buffer;    // выводим наше сообщение, вводим что-то с клавиатуры
            error = (cin.fail() || cin.bad());  // проверяем наличие ошибок для данного типа 
            cin.clear(); cin.ignore(cin.rdbuf()->in_avail());   // очищаем поток от мусора, сбрасываем ошибки 
            if (!error && !(min == NULL && max == NULL))        // проверяем входимость в указанный интервал 
                error = _buffer < min || _buffer > max;         // (только если min и max указаны в качестве дополнительных аргументов)
            if (error) cout << message_error;   // очищаем поток от мусора, выводим сообщение об ошибке
            else arg = _buffer;;            // если ошибок нет, возвращаем безопасное значение
        }
    }
}
 
int main()
{
    setlocale(0, "Russian");
 
    int p;
    input_s(p, "Введите количество элементов массива (1-1000): ", 1, 1000);
 
    double* mas = new double[p];
 
    cout << "Заполните массив\n";
    for (int i = 0; i < p; i++)
        input_s(mas[i], "Введите A["+to_string(i+1)+"]: ");
 
    int a, b;
    input_s(a, "Введите min диапазона: ", 5, 10, " Введите значение от 5 до 10.\n"); 
    input_s(b, "Введите max диапазона: ", a, 10, " Введите значение от min до 10.\n");
 
    int k = 0, iMin = 0;
    double Min = mas[0];
    /*В этом цикле находим количество элементов массива,лежащих в заданном диапозоне,
    а также номер минимального элемента массива*/
    for (int i = 0; i < p; i++)
    {
        if ((mas[i] > a) && (mas[i] < b))
            k++;
 
        if (mas[i] > Min)
        {
            Min = mas[i];
            iMin = i;
 
        }
    }
 
    double sum = 0;
    //Считаем сумму элементов массива, лежащих после минимального элемента
    for (int i = iMin + 1; i < p; i++)
        sum += mas[i];
 
    cout << "Количество элементов, лежащих в диапозоне от " << a << " до " << b << " равно " << k << endl;
    cout << "Сумма элементов массива, расположенных после минимального элемента равна " << sum << endl;
 
    // Сортируем массив по убыванию модулей элементов
    for (int i = 0; i < p - 1; i++)
    {
        for (int j = i + 1; j < p; j++)
 
            if (fabs(mas[i]) < fabs(mas[j]))
            {
                Min = mas[i];
                mas[i] = mas[j];
                mas[j] = Min;
            }
 
    }
 
    cout << "Упорядоченный массив:\n";
 
    for (int i = 0; i < p; i++)
        cout << mas[i] << "\t";
 
    delete[] mas;
 
    return 0;
}
1
31.12.2019, 08:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.12.2019, 08:33
Помогаю со студенческими работами здесь

Ошибка С2011 . Решение проблемы переопределение типа class
Прилагаю программы для файлов(Хедер, учитывая все условия): GeoVector.h #pragma once ...

Переопределение операции. Ошибка Error LNK2019: ссылка на неразрешенный внешний символ
Возникает такая ошибка: 1 error LNK2019: ссылка на неразрешенный внешний символ &quot;public: class...

visual studio 2012 - ошибка "переопределение типа"
имею head.h #include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;Windows.h&gt; #pragma...

Ошибка - "переопределение формального параметра", выходные параметры
Мне нужно сделать в качестве выходных параметров iRows функции Dimension и результат функции...

Ошибка: "Переопределение; Другой класс хранения"
При компиляции кода: #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;iomanip&gt; using...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru