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

Найти среди отрицательных элементов максимальный элемент и его индекс

15.03.2016, 01:48. Показов 908. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В каждом из массивов X(Nx), Y(Ny) и Z(Nz) вещественных чисел найти среди
отрицательных элементов максимальный элемент и его индекс. Вот что получилось не не работает.Помогите исправить.

Добавлено через 25 минут
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#include <iostream>
using namespace std;
 
int getCount(string name) {
    int width;
    cout<<"Input width of "<<name<<": "; cin>>width;
    return width;
}
 
class clArray {
public:
    clArray();
    clArray(int a, int b, int c);
    void output();
    float *arr1;
    float *arr2;
    float *arr3;
    int max(float *a, int cou);
    void loopaska();
    friend int getCount();
    ~clArray();
private:
    int count1;
    int count2;
    int count3;
};
 
clArray::clArray() {}
 
clArray::clArray(int a, int b, int c) {
    count1 = a;
    count2 = b;
    count3 = c;
    arr1 = new float[count1];
    arr2 = new float[count2];
    arr3 = new float[count3];
 
    for (int i = 0; i < count1; i++) {
        cout<<i<<": "; cin>>arr1[i];
    }
 
    for (int i = 0; i < count2; i++) {
        cout<<i<<": "; cin>>arr2[i];
    }
 
    for (int i = 0; i < count3; i++) {
        cout<<i<<": "; cin>>arr3[i];
    }
}
 
void clArray::output() {
    for (int i = 0; i < count1; i++) {
        cout<<i<<": "<<arr1[i]<<"\t";
    }
    cout<<endl;
    for (int i = 0; i < count2; i++) {
        cout<<i<<": "<<arr2[i]<<"\t";
    }
    cout<<endl;
    for (int i = 0; i < count3; i++) {
        cout<<i<<": "<<arr3[i]<<"\t";
    }
    cout<<endl;
}
 
int clArray::max(float *a, int cou) {
    int maximum;
    for (int i = 0; i < cou; i++) {
        if (a[i] < 0) {
            maximum = (a[maximum] < a[i]?i:maximum);
        }
    }
 
    return maximum;
}
 
void clArray::loopaska() {
    int m, n, o, maximum;
 
    m = max(arr1, count1);
    n = max(arr2, count2);
    o = max(arr3, count3);
 
    if (arr1[m] > arr2[n]) {
        if (arr1[m] > arr3[o]) {
            cout<<m<<": "<<arr1[m]<<endl;
        } else if (arr2[n] < arr3[o]) {
            cout<<o<<": "<<arr3[m]<<endl;
        } else {
            cout<<n<<": "<<arr2[m]<<endl;
        }
    } else if (arr2[n] > arr3[o]) {
        cout<<n<<": "<<arr2[m]<<endl;
    } else {
        cout<<o<<": "<<arr3[m]<<endl;
    }
}
 
clArray::~clArray() {}
 
int main() {
 
    clArray *x = new clArray(getCount("a"), getCount("b"), getCount("c"));
    cout<<"Original: "<<endl;
    x->output();
    x->loopaska();
 
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.03.2016, 01:48
Ответы с готовыми решениями:

Массивы: найти среди отрицательных элементов максимальный элемент и его индекс
В каждом из массивов X(Nx), Y(Ny) и Z(Nz) вещественных чисел найти среди отрицательных элементов...

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

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

Найти максимальный элемент среди отрицательных элементов массива
Привет. Помогите написать код. Необходимо используя классы найти максимальный элемент среди...

1
Модератор
Эксперт С++
13508 / 10758 / 6412
Регистрация: 18.12.2011
Сообщений: 28,729
15.03.2016, 09:32 2
Класс, конечно, странноватый. Да и по условию задачи совсем не нужен.
Но ошибки в методе max.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int clArray::max(float *a, int cou) 
{
    int maximum=-1;
    bool found=false;
    for (int i = 0; i < cou; i++) 
    {
        if (a[i] < 0) 
        {
            if(found)
                maximum = (a[maximum] < a[i]?i:maximum);
            else
            {
                maximum=i;
                found=true;
            }
        }
    }
    return maximum;
}
Если отрицательных чисел не найдется, то метод возвратит -1. Учтите это в main()
0
15.03.2016, 09:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.03.2016, 09:32
Помогаю со студенческими работами здесь

Найти максимальный среди отрицательных элементов массива Х и его индекс
А) Найти максимальный среди отрицательных элементов массива Х и его индекс. Элементы массива...

Найти наибольший элемент среди отрицательных и его индекс , посчитать количество отрицательных элементов
Найти наибольший элемент среди отрицательных и его индекс , посчитать количество отрицательных...

Найти наибольший элемент среди отрицательных и его индекс , посчитать количество отрицательных элементов
Найти наибольший элемент среди отрицательных и его индекс , посчитать количество отрицательных...

Найти максимальный элемент массива среди элементов с n-го по k-й и его индекс
Задан одномерный массив A. Найти максимальный элемент среди элементов с n-го по k-й и его индекс ...


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

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