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

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

Восстановить пароль Регистрация
 
Катерина Нечай
1 / 1 / 0
Регистрация: 19.01.2012
Сообщений: 11
20.01.2012, 19:47     Найти его первый максимальный элемент #1
Дан массив действительных чисел. Среди них есть равные. Найти его первый максимальный элемент и заменить его 0.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2012, 19:47     Найти его первый максимальный элемент
Посмотрите здесь:

Найти максимальный элемент и заменит его нулем C++
C++ Найти максимальный элемент массива и его номер
Выполнить кольцевой сдвиг элементов массива так чтобы его первый максимальный элемент оказался на k-том месте C++
Найти первый отрицательный элемент и его индекс в массиве C++
C++ Найти первый максимальный элемент массива и заменить его нулём
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
20.01.2012, 19:50     Найти его первый максимальный элемент #2
C++
1
2
3
4
5
6
#include <algorithm>
//...
const int size = /*some number*/
double arr[size];
//...
*std::max_element(arr, arr + size) = 0.;
Melkor
30 / 30 / 1
Регистрация: 15.12.2011
Сообщений: 108
20.01.2012, 20:00     Найти его первый максимальный элемент #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
31
32
33
34
35
36
37
size_t getFirstMaxElementIndex(const std::vector<double>& refArray)
{
   if(false == refArray.empty())
   {
     double maxValue = refArray[0];
     size_t result = 0;
     for(size_t i = 1; i < refArray.size(); ++i)
     {
        if(refArray[i] > maxValue)
        {
           maxValue = refArray[i];
           result = i;
         }
     }
 
     return result;
   }
 
   throw "array is empty";
}
 
int main()
{
   std::vector<double> array;
   //ввод данных
   try
   {
      size_t index = getFirstMaxElementIndex(array);
      array[index] = 0.0;
   }
   catch(const char* mes)
   {
      std::cout << mes;
    }
 
return 0;
}
Добавлено через 5 минут
Цитата Сообщение от soon Посмотреть сообщение
double arr[size];
низя так делать в плюсах.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
20.01.2012, 20:07     Найти его первый максимальный элемент #4
Цитата Сообщение от Melkor Посмотреть сообщение
низя так делать в плюсах.
С каких это пор? size -то константа.
mansp
18 / 18 / 0
Регистрация: 07.11.2010
Сообщений: 136
20.01.2012, 20:37     Найти его первый максимальный элемент #5
Цитата Сообщение от soon Посмотреть сообщение
C++
1
2
3
4
5
6
#include <algorithm>
//...
const int size = /*some number*/
double arr[size];
//...
*std::max_element(arr, arr + size) = 0.;
мб так?
C++
1
2
3
4
5
6
#include <algorithm>
//...
const int size = /*some number*/
double *arr = new double [size];
//...
*std::max_element(arr, arr + size) = 0.;
soon
20.01.2012, 20:39
  #6

Не по теме:

Цитата Сообщение от mansp Посмотреть сообщение
мб так?
Неа. Может вас смутило словосочетание some number?
C++
1
2
3
4
5
6
7
8
#include <iostream>
 
int main()
{
    const int size = 5;
    int arr[size];
    return 0;
}

Melkor
30 / 30 / 1
Регистрация: 15.12.2011
Сообщений: 108
20.01.2012, 20:50     Найти его первый максимальный элемент #7
Цитата Сообщение от soon Посмотреть сообщение
С каких это пор? size -то константа.
простите недоглядел константу.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.01.2012, 21:29     Найти его первый максимальный элемент
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
20.01.2012, 21:29     Найти его первый максимальный элемент #8
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
#include <stdio.h>
 
#define N 10
 
int main()
{
    int i;
    double a[N];
    double* max = a;
 
    for(i = 0; i < N; ++i)
    {
        printf("[%d\\%d]: ", i + 1, N);
        scanf("%lf", &a[i]);
    }
 
    for(i = 1; i < N; ++i)
        if(a[i] > *max) max = a + i;
    *max = 0.0;
 
    printf("---------------");
    for(i = 0; i < N; ++i)
        printf("[%d]: %f\n", i + 1, a[i]);
 
    return 0;
}
Yandex
Объявления
20.01.2012, 21:29     Найти его первый максимальный элемент
Ответ Создать тему
Опции темы

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