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

Номер максимального и минимального элементов - C++

Восстановить пароль Регистрация
 
АлександрБелоус
0 / 0 / 0
Регистрация: 02.02.2013
Сообщений: 15
02.02.2013, 16:25     Номер максимального и минимального элементов #1
Нужно найти номер максимального и минимального элементов

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
#include <iostream>
using namespace std;
 
int find_max_value(int* mas, int n){ // поиск максамального элемменета массива
    int max = mas[0];
    for(int i=1; i<n; i++){
        if(mas[i] > max)
            max = mas[i];
    }
    return max;
}
 
 
void input(int* arr, int n){ // ввод массива с клавиатуры
    for(int i=0; i<n; i++)
        cin >> arr[i];
}
 
int find_min_value(int* mas, int n){ // поиск минимального эллемента массива
    int min = mas[0];
    for(int i=1; i<n; i++){
        if(mas[i] < min)
            min = mas[i];
    }
    return min;
}
 
 
void print(int* arr,int n){ // печать элементов массива
    cout << "\nЭлементы массива:"<< endl;
    for(int i=0; i<n; i++)
    cout << "  " << arr[i] << endl;
}
 
int main()
{
    setlocale (LC_ALL, "RUS");
    cout << " Количество элементов: ";
    int n;
    cin >> n;
    int* arr = (int*)malloc(n*sizeof(int));
    input(arr, n);
    int max = find_max_value(arr, n);
    int min = find_min_value(arr, n);
    print(arr, n);
        cout << " Максимальный элемент " << max << "\n";
        cout << " Минимальный элемент " << min << "\n";
    free(arr);
    system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.02.2013, 16:25     Номер максимального и минимального элементов
Посмотрите здесь:

Найти номер последнего экстремального (минимального или максимального) элемента из набора. C++
C++ Поиск минимального и максимального элементов массива
C++ Поиск максимального и минимального элементов в матрице
C++ Найти номер максимального и минимального элементов массива
Массив: номер минимального и максимального по модулю элемента массива C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GggDrej
 Аватар для GggDrej
71 / 71 / 8
Регистрация: 21.01.2013
Сообщений: 147
02.02.2013, 17:27     Номер максимального и минимального элементов #2
Эта программа неправильно работает ?
В чем проблема ?
АлександрБелоус
0 / 0 / 0
Регистрация: 02.02.2013
Сообщений: 15
02.02.2013, 18:11  [ТС]     Номер максимального и минимального элементов #3
Программа работает правильно! Просто не могу дописать функцию, которая бы выводила номер минимального и максимального элементов!
GggDrej
 Аватар для GggDrej
71 / 71 / 8
Регистрация: 21.01.2013
Сообщений: 147
02.02.2013, 18:29     Номер максимального и минимального элементов #4
Можно например так:
C++
1
2
3
4
5
int max_number ( int* mas, int max ){
   int number=0;
   while ( mas[number]!=max ) ++number;
   return number+1;
}
При вызове в main():
C++
1
cout << " MAX position: " << max_number(arr,find_max_value(arr, n)) << "\n";
Для минимального аналогично.
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
02.02.2013, 18:44     Номер максимального и минимального элементов #5
Предложу я вам еще и такой вариант для разнообразия:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <algorithm>
#include <array>
#include <iterator>
 
int main()
{
    const unsigned size = 12;
    std::array<int, size> some_array = {-7, 6, 0, 4, 3, 1, -9, 1, 7, 3, 12, -21};
    auto minmax = std::minmax_element(some_array.begin(), some_array.end());
 
    std::cout<<"Min element: "<<*minmax.first<<" at position: "<<std::distance(some_array.begin(), minmax.first)<<"\n"
             <<"Max element:  "<<*minmax.second<<" at position: "<<std::distance(some_array.begin(), minmax.second)<<"\n";
 
    system("pause");
    return 0;
}
Yandex
Объявления
02.02.2013, 18:44     Номер максимального и минимального элементов
Ответ Создать тему
Опции темы

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