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

Задача на minmax - C++

Восстановить пароль Регистрация
 
helpme_plz
0 / 0 / 0
Регистрация: 07.02.2012
Сообщений: 21
14.02.2012, 21:09     Задача на minmax #1
Дано целое число N и набор из N целых чисел. Найти номер по- следнего экстремального (то есть минимального или максимального) эле- мента из данного набора.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,508
14.02.2012, 21:17     Задача на minmax #2
Набор дан в виде массива я так понимаю?
Петррр
 Аватар для Петррр
5914 / 3351 / 333
Регистрация: 28.10.2010
Сообщений: 5,926
14.02.2012, 21:21     Задача на minmax #3
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
#include <iostream>
#include <algorithm>
#include <ctime>
 
using namespace std;
 
int main()
{
    int size;
    cout << "Size: ";
    cin >> size;
    srand(time(NULL));
    int *array = new int[size];
    for(int i = 0; i < size; i++)
    {
        array[i] = rand() % 20;
        cout << array[i] << " ";
    }
    int *max = max_element(array, array + size);
    int *min = min_element(array, array + size);
    int max_pos = size - 1;
    while (array[max_pos] != *max)
        max_pos--;
    int min_pos = size - 1;
    while (array[min_pos] != *min)
        min_pos--;
    cout << endl << "Min: " << min_pos << " Max: " << max_pos;
    delete[] array;
    return 0;
}
helpme_plz
0 / 0 / 0
Регистрация: 07.02.2012
Сообщений: 21
14.02.2012, 21:23  [ТС]     Задача на minmax #4
да в виде массива
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,508
14.02.2012, 21:24     Задача на minmax #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <stdlib.h>
using namespace std;
 
#define what max  //либо напишите min вместо max
 
int main()
{
    int n; //сколько чисел в массиве
    int w;//результат, наибольшее или наименьшее число
    cin>>n;
    int ar[n];
    w=ar[0]=rand()%100;
 
    cout<<ar[0]<<' ';
    for(int i=1;i<n;i++)
    {
        cout<<(ar[i]=rand()%100)<<' ';
        w=what(w,ar[i]);
    }
    cout<<endl<<w;
}
С форматированием и красивым выводом играйтесь сами.
helpme_plz
0 / 0 / 0
Регистрация: 07.02.2012
Сообщений: 21
14.02.2012, 21:29  [ТС]     Задача на minmax #6
кто может помочь? выше написанные коды не работают
Петррр
 Аватар для Петррр
5914 / 3351 / 333
Регистрация: 28.10.2010
Сообщений: 5,926
14.02.2012, 21:39     Задача на minmax #7
helpme_plz, да лана? Здесь не стол заказов русского радио, здесь форум, и Вы конечно же прочитали правила, и помните о таком пункте:
 Комментарий модератора 
Как можно более полно описывайте суть проблемы или вопроса, что было сделано для ее решения и какие результаты получены.
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,508
14.02.2012, 21:42     Задача на minmax #8
helpme_plz, я могу помочь: клацаете сюда http://sourceforge.net/projects/code...p.exe/download потом устанавливаете, запускаете, копируете туда код и запускаете.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
14.02.2012, 21:45     Задача на minmax #9
Петррр, так у Вас будет найден номер первого?
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
14.02.2012, 21:49     Задача на minmax #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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
typedef int T_data;
#define f   "%d"
 
T_data* max_element(T_data* first, T_data* last)
{
    T_data* max = first;
    while(++first != last)
        if(*first > *max)
            max = first;
    return max;
}
 
T_data* min_element(T_data* first, T_data* last)
{
    T_data* min = first;
    while(++first != last)
        if(*first < *min)
            min = first;
    return min;
}
 
int main(void)
{
    size_t size;
    T_data* arr;
    size_t i;
    srand(time(NULL));
    scanf("%u", &size);
    arr = (T_data*)malloc(size * sizeof(T_data));
    for(i = 0; i < size; ++i)
    {
        arr[i] = rand() % 21;
        printf(f, arr[i]);
        printf(" ");
    }
    printf("\n");
    printf
    (
        "max - %u\nmin - %u\n",
        max_element(arr, arr + size) - arr,
        min_element(arr, arr + size) - arr
    );
    free(arr);
    return 0;
}
http://liveworkspace.org/code/52055a...12a279d873c72e
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.02.2012, 21:59     Задача на minmax
Еще ссылки по теме:

C++ Описать функцию Minmax (X, Y)

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

Или воспользуйтесь поиском по форуму:
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
14.02.2012, 21:59     Задача на minmax #11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <algorithm>
 
int main()
{
   int arr[] = { 1, 2, 3, 1, 3};
   const int SIZE = sizeof arr / sizeof *arr;
   
   
   std::cout << std::max_element(arr, arr + SIZE, [] (const int i, const int j) -> bool
                {
                   return i <= j;
                }) - arr
             << std::endl;
  return 0;
}
http://liveworkspace.org/code/315e84...58e9cbb95dc0c9
Yandex
Объявления
14.02.2012, 21:59     Задача на minmax
Ответ Создать тему
Опции темы

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