Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
byhukutka
0 / 0 / 3
Регистрация: 12.07.2013
Сообщений: 47
#1

Нахождение максимального элемента - C++

02.12.2014, 17:04. Просмотров 309. Ответов 7
Метки нет (Все метки)

Друзья, вот незадача, код написан, а работает не верно. Голову сломал что не так, может кто увидит - подскажет? За ранее спасибо.
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
#include <iostream>
#include <time.h>
#include <stdlib.h>
 
using namespace std;
 
int maxiter(int *arr, int n){   //Итерационный метод вычисления максимального элемента в массиве чисел
    int t = arr[0];
    for(int i = 0; i<n; ++i){
        if(arr[i]>t)
            t = arr[i];
    }
    return t;
}
 
int maxrec(int *arr, int i, int n, int &t){   //Рекурсивный метод вычисления максимального элемента в массиве чисел
    if(arr[i]>t)
        t = arr[i];
    if(i+1<n)
        maxrec(arr, i+1, n, t);
    else
        return t;
}
 
int maxRiV(int *arr, int l, int r){         //Метод "Разделяй и властвуй"
    if(l == r)
        return arr[l];
    int m = (l+r)/2;
    int u = maxRiV (arr, l, m) ;
    int v = maxRiV (arr, m+1, r) ;
    if (u > v)
        return u;
    else
        return v;
}
 
int main(){
    int n = 0, st = 0, end = 0, tim = 0;
    cout<<"Vvedite razmer massiva n"<<endl;
    cin>>n;
    int *arr = new int[n];
    for(int i = 0; i<n; ++i){
        arr[i] = 1+rand()%99;
        srand(rand()*clock());
        cout<<arr[i]<<" ";
    }
    st = clock();
    cout<<endl<<"Max element (iter metod) = "<<maxiter(arr,n)<<endl;   //вызов итерационного метода
    end = clock();
    tim = end - st;
    cout<<"Vremya vipolneniya = "<<tim<<" ms"<<endl;
 
    int t = arr[0];
    st = clock();
    cout<<endl<<"Max element (rek metod) = "<<maxrec(arr,0,n,t)<<endl;  //вызов рекурсивного метода
    end = clock();
    tim = end - st;
    cout<<"Vremya vipolneniya = "<<tim<<" ms"<<endl;
 
    cout<<endl<<"Max element (metod \"razdelyai i vlastvui\") = "<<maxRiV(arr,0,n)<<endl;  //вызов метода "Разделяй и властвуй"
    end = clock();
    tim = end - st;
    cout<<"Vremya vipolneniya = "<<tim<<" ms"<<endl;
 
    delete [] arr;
    system("pause");
    return 0;
}

http://www.cyberforum.ru/cpp-beginners/thread1116487.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2014, 17:04
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Нахождение максимального элемента (C++):

Нахождение максимального элемента списка
Есть код: // ConsoleApplication1.cpp : Defines the entry point for the console...

Нахождение максимального элемента в матрице
Нужно решить задачу и найти наибольший элемент. Подскажите, как сделать? НУЖНО...

Матрицы,нахождение максимального и минимального элемента
Здравствуйте!Помогите пожалуйста с программой,по условию нужно найти...

Нахождение максимального и минимального элемента в списке
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; #include...

Нахождение первого и последнего максимального элемента
Найти номера первого и последнего максимального элемента из данного набора и...

7
4unkur
16 / 16 / 10
Регистрация: 16.06.2014
Сообщений: 176
02.12.2014, 17:13 #2
Где именно ошибка?
0
byhukutka
0 / 0 / 3
Регистрация: 12.07.2013
Сообщений: 47
02.12.2014, 17:31  [ТС] #3
В "Разделяй и властвуй" выдает не максимальный элемент массива..... Просто какое - то огромное число
Не умею картинки подгружать, показал бы скрин
0
4unkur
16 / 16 / 10
Регистрация: 16.06.2014
Сообщений: 176
02.12.2014, 17:41 #4
Цитата Сообщение от byhukutka Посмотреть сообщение
показал бы скрин
Я увидел. Такое случается при вводе n= 2,10,11 ... .
0
byhukutka
0 / 0 / 3
Регистрация: 12.07.2013
Сообщений: 47
02.12.2014, 17:57  [ТС] #5
А в чем может быть дело?
0
4unkur
16 / 16 / 10
Регистрация: 16.06.2014
Сообщений: 176
02.12.2014, 18:03 #6
Цитата Сообщение от byhukutka Посмотреть сообщение
А в чем может быть дело?
Я не знаю этот метод нахождения максимума и сейчас мне надо идти кушать ))
У тебя есть Visual studio? Если есть, то там можно выполнять программы пошагово. Посмотри что там происходит. (Может быть такая функция есть и в других IDE, но я не знаю )
0
Тамика
Котовчанин
918 / 462 / 195
Регистрация: 16.02.2010
Сообщений: 3,264
Записей в блоге: 28
02.12.2014, 18:20 #7
byhukutka, а обязательно таким извратом искать максимум?..
0
byhukutka
0 / 0 / 3
Регистрация: 12.07.2013
Сообщений: 47
02.12.2014, 18:25  [ТС] #8
Обязательно надо искать методом Итераций, рекурсивным методом и методом "Разделяй и властвуй". Вот все что я смог придумать, можно это прописать иначе? Я просто не так давно изучаю C++
0
02.12.2014, 18:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2014, 18:25
Привет! Вот еще темы с решениями:

Нахождение максимального элемента и его номера в дереве
сама проблема находится в том чтобы найти номер максимального эл. #include...

Нахождение максимального элемента каждого столбца массива
Есть готовый код. // ConsoleApplication2.cpp : Defines the entry point for...

Нахождение максимального элемента относительно диагонали массива
Дан квадратный массив. Нужно найти максимальное число в секторе относительно...

Цикл на нахождение максимального элемента и замена его на данный
Привет всем. У меня есть цикл на нахождение максимального элемента и замены его...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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