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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
.Malek.
5 / 5 / 0
Регистрация: 20.03.2011
Сообщений: 180
#1

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

05.05.2011, 20:24. Просмотров 991. Ответов 14
Метки нет (Все метки)

Как найти максимальный элемент в массиве?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.05.2011, 20:24     Найти максимальный элемент в массиве
Посмотрите здесь:
C++ Найти максимальный элемент и заменить им первый элемент строки в двумерном массиве
C++ Найти в массиве максимальный элемент и минимальный элемент, и поменять их местами
В одномерном целочисленном массиве найти минимальные элемент m и максимальный элемент М C++
Найти в двумерном массиве максимальный элемент и удалить строку и столбцы, содержащие найденный элемент C++
C++ Классы. В массиве чисел размером 6х6 элементов найти максимальный элемент, минимальный элемент и их индексы
C++ В массиве найти максимальный элемент
C++ Найти максимальный элемент в массиве
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
neske
1479 / 846 / 75
Регистрация: 26.03.2010
Сообщений: 2,904
05.05.2011, 20:28     Найти максимальный элемент в массиве #2
C++
1
2
3
4
5
6
7
int MAS[] = {1, 2, 3, 4, 5, 4, 3, 2, 1};
std::cout << *max_element (MAS, MAS + sizeof (MAS) / sizeof (*MAS)); // + include <algorithm>
// without stl
const int SIZE = sizeof (MAS) / sizeof (*MAS);
int max = MAS[0];
for (int i = 1; i < SIZE; i++)
    if (MAS[i] > max) max = MAS[i];
rangerx
1932 / 1541 / 141
Регистрация: 31.05.2009
Сообщений: 2,911
05.05.2011, 20:36     Найти максимальный элемент в массиве #3
для разнообразия
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <valarray>
 
int main()
{
    std::valarray<int> a(10);
 
    for(std::size_t i = 0; i < a.size(); ++i)
        std::cin >> a[i];
 
    std::cout << "max: " << a.max() << '\n';
    return 0;
}
.Malek.
5 / 5 / 0
Регистрация: 20.03.2011
Сообщений: 180
05.05.2011, 20:44  [ТС]     Найти максимальный элемент в массиве #4
а можно так? только ругается на 12 строку почему ?
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
#include <iostream.h>
#include <string.h> // strlen()
const int SIZE=9;
void maxint(int [SIZE], int );
 
int main()
{
    int number[SIZE];
    cout<<"Enter Number: ";
    for (int j=0; j<SIZE; j++)
    cin>>number[j];
    int n=strlen(number);
    return 0;
}
 
void maxint(int num [SIZE], int nn)
{   int n=num[0];
    int max;
    for(int i=0; i<nn; i++)
    {
        if(n>=num[i])
        max=num[i];
    }
    cout<<max;
}
neske
1479 / 846 / 75
Регистрация: 26.03.2010
Сообщений: 2,904
05.05.2011, 20:46     Найти максимальный элемент в массиве #5
Что вы ждете от функции strlen в этом коде?
.Malek.
5 / 5 / 0
Регистрация: 20.03.2011
Сообщений: 180
05.05.2011, 20:46  [ТС]     Найти максимальный элемент в массиве #6
strlen же показывает размер массива? (если конечно не знаем сами размер)
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
05.05.2011, 20:47     Найти максимальный элемент в массиве #7
Ну раз пошла такая п`янка...еще вариант:
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
#include <boost/algorithm/minmax_element.hpp>
#include <vector>
 
int main(){
  std::vector<int> a = {6, 3, 2, 7, 4};
  std::cout << *boost::first_max_element(a.begin(), a.end());
  return 0;
}
neske
1479 / 846 / 75
Регистрация: 26.03.2010
Сообщений: 2,904
05.05.2011, 20:48     Найти максимальный элемент в массиве #8
C++
1
size_t strlen ( const char * str );
Это прототип функции strlen, она возвращает размер строки.

Вы же заранее рамер массива задали, зачем вы еще раз пытаетесь его найти? Он измениться не может, не бойтесь)
.Malek.
5 / 5 / 0
Регистрация: 20.03.2011
Сообщений: 180
05.05.2011, 20:50  [ТС]     Найти максимальный элемент в массиве #9
да не это я понимаю просто если даже задан но strlen же должна работать а то ошибка int to char
neske
1479 / 846 / 75
Регистрация: 26.03.2010
Сообщений: 2,904
05.05.2011, 20:56     Найти максимальный элемент в массиве #10
Попробоуем еще раз.
C++
1
size_t strlen ( const char * str );
Вы видите что принимает функция? Константный указатель на char. То есть по сути строка.

А вы что делаете?
Размер массива можно найти такой операцией:
C++
1
const int SIZE = sizeof (MAS) / sizeof (*MAS);
.Malek.
5 / 5 / 0
Регистрация: 20.03.2011
Сообщений: 180
05.05.2011, 20:57  [ТС]     Найти максимальный элемент в массиве #11
а все понял. спасибо
ZloyVolkey
27 / 27 / 6
Регистрация: 01.05.2011
Сообщений: 85
05.05.2011, 20:58     Найти максимальный элемент в массиве #12
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
#include <stdio.h>  
 
int Max(int [], int);
 
int main()
{
    int *a;     
    int N, max; 
 
    scanf("%i", &N);
    a = new int [N];
    for (int i = 0; i < N; i++)
        scanf("%i", &a[i]);
 
    max = Max(a, N);
    printf("Max = %i\n", max);
    
    return 0;
}
 
int Max(int b[], int M)
{
    int max, i;
    max = b[0];
    for (i = 1; i < M; i++)
        if (max < b[i])
            max = b[i];
    return max;
}
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
05.05.2011, 21:04     Найти максимальный элемент в массиве #13
Цитата Сообщение от neske Посмотреть сообщение
Вы видите что принимает функция? Константный указатель на char.
Немного поправлю: константный указатель на char, будет выглядить так -
C++
1
char *const p
, а то, что принимает фукция strlen() - это не константный указатель на константный тип, то есть - указатель на char которое нельзя менять.

Добавлено через 56 секунд
Подробней тут.
.Malek.
5 / 5 / 0
Регистрация: 20.03.2011
Сообщений: 180
05.05.2011, 21:21  [ТС]     Найти максимальный элемент в массиве #14
все разобрался и сделал а как мне вернуть значение и индекс максимального элемента? или хотябы индекс
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream.h>
#include <string.h> // strlen()
const int SIZE=4;
int maxint(int [SIZE]);
 
int main()
{
    int number[SIZE];
    cout<<"Enter Number: ";
    for (int j=0; j<SIZE; j++)
    cin>>number[j];
    cout<<maxint(number);
    return 0;
}
 
int maxint(int num [SIZE])
{   int max=num[0];
    for(int i=1; i<SIZE; i++)
        if(num[i]>max)
            max=num[i];
    
    return max;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.05.2011, 21:53     Найти максимальный элемент в массиве
Еще ссылки по теме:
C++ Найти максимальный элемент в массиве
C++ Найти максимальный элемент в массиве
C++ Найти в массиве максимальный элемент
C++ Найти второй максимальный элемент в массиве
C++ В заданном массиве найти максимальный элемент

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

Или воспользуйтесь поиском по форуму:
ZloyVolkey
27 / 27 / 6
Регистрация: 01.05.2011
Сообщений: 85
05.05.2011, 21:53     Найти максимальный элемент в массиве #15
C++
1
2
3
4
5
6
7
8
9
10
int maxint(int num [SIZE])
{       int max = 0;
        for(int i=1; i<SIZE; i++)
                if(num[i] > num[max])
                        max = i;
        
        return max;
}
 
cout<<number[maxint(number)];
Как то так вроде.
Yandex
Объявления
05.05.2011, 21:53     Найти максимальный элемент в массиве
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru