Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
fuzzytoozy
8 / 8 / 1
Регистрация: 23.11.2012
Сообщений: 94
#1

нахождение наибольшего числа в массиве - C++

23.11.2012, 17:47. Просмотров 1219. Ответов 4
Метки нет (Все метки)

Здравствуйте! У меня такая проблема: есть задача написать функцию, которая принимает в качестве аргумента адрес массива и количество элементов в нем, а возвращает индекс наибольшего элемента и собственно сам наибольший элемент. Может оно всё и гораздо проще и я что то сильно намудрил. У меня получилась программа, которая работает только для четного количества значений в массиве, как сделать её работающей и для нечетных ума пока что не хватает. Дело в том что в случае, если пользователь ввел нечетное количество элементов, то элемент массива str[++j] цикла for остается не инициализированным, а дальнейший цикл все равно производит операции сравнения с этим элементом, что естественно выливается в ошибку. Прошу сильно не пинать, помогите кто чем может =)
вот собственно сам код:

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
69
70
71
72
73
74
75
76
77
#include <iostream>
using namespace std;
int maxint(int []);
int main()
{
const int MAX = 80;
int str[MAX];
maxint(str);
system("PAUSE");
return 0;
}
int maxint(int str[])
{
int one,two,c;
c=0;
int biggest;
int ind = 0;
int county=0;
char ch;
int g = 0;
while(ch != 'n')
{
cout<<"Enter number: ";
cin>>str[g];
county++;
cout<<"Continue?(Y/N)";
cin>>ch;
g++;
}
one = str[0];
two = str[1];
if(one > two)
{
ind = 0;
biggest = one;
}
else
{
ind = 1;
biggest = two;
}
for(int j = 2; j<county; j++)
{
one = str[j];
two = str[++j];
if(biggest < one && biggest > two)
{
biggest = one;
ind = j-1;
}
if(biggest > one && biggest < two)
{
ind = j;
biggest = two;
}
if(biggest > one && biggest > two)
{
ind = ind;
biggest = biggest;
}
if(biggest < one && biggest < two)
{
if(one > two)
{
ind = j-1;
biggest = one;
}
else
{
ind = j;
biggest = two;
}
}
}
cout<<"Biggest entered number's index: "<<ind<<endl;
cout<<"Biggest entered number: "<<biggest<<endl;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2012, 17:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос нахождение наибольшего числа в массиве (C++):

Нахождение нечетного наибольшего числа в матрице - C++
Дана матрица MXN. В ней надо найти нечетное наибольшее число среди случайных чисел в диапазоне от -27 до 38. #include &quot;stdafx.h&quot; ...

Нахождение в масивах наибольшего,наименьшего числа. - C++
Доброго времени суток.Скажите пожалуйста,как найти наибольший элемент в двумерном масиве,и как наименьший.И как поменять местами строку,...

Нахождение наибольшего числа в столбце динамического массива - C++
На форуме не нашел решения моей проблемы. В общем задание было создать массив который считывал бы размерность и сам массив из файл...

Вывод наибольшего числа в массиве. Некорректно работает - C++
Добрый день написал простенькую программку которая выводит наибольшее число в массиве дабы вспомнить сипипи, программа которая выводит...

Нахождение наименьшего числа в массиве - C++
Почему тут находит мин число int n; int a; cin &gt;&gt; n; for (int i = 0; i &lt; n; i++) cin &gt;&gt; a; int m =...

Нахождение большего числа в массиве - C++
Доброго время суток друзья. Помогите, исправьте что надо. Задание такое: Дан массив F: array , определить количество&quot;особых&quot; элементов в...

4
v.a.l.i.d
413 / 378 / 10
Регистрация: 21.09.2012
Сообщений: 913
23.11.2012, 17:58 #2
C++
1
2
3
4
5
6
7
8
9
10
11
void maxint(int str[])
{
    int index_biggest = 0;
 
    for (int i=1; i<MAX; i++)
        if (str[i] > str[index_biggest])
            index_biggest = i;
 
    cout << "Индекс наибольшего элемента " << index_biggest << endl;
    cout << "Наибольший элемент " << str[index_biggest] << endl;
}
здесь я правда сделал функцию void. ничего не возвращает
0
fuzzytoozy
8 / 8 / 1
Регистрация: 23.11.2012
Сообщений: 94
23.11.2012, 18:16  [ТС] #3
что то я не разобрался попробую этот код применительно к проге
0
David Sylva
1290 / 952 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
23.11.2012, 18:24 #4
Типа такого
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>  
 
int func(int* arr, int s)
{ 
    int max = arr[0]; 
    int max_index = 0; 
    int i;  
 
    for ( i = 1; i < s; ++i) 
        if(max < arr[i]) 
        { 
            max = arr[i]; 
            max_index = i; 
        } 
        return arr[max_index];
}
 
int main() 
{ 
    const int size = 6; 
    int array[size] = { 1, 2, 5, 6, 3, 4 };  
    std::cout << "Max element " << func(array, size) << std::endl;
}
1
fuzzytoozy
8 / 8 / 1
Регистрация: 23.11.2012
Сообщений: 94
23.11.2012, 18:41  [ТС] #5
всё понял, спасибо большое =) даже стыдно сидел мудрил, чего мудрил спрашивается
0
23.11.2012, 18:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2012, 18:41
Привет! Вот еще темы с ответами:

Нахождение заданного числа в массиве(не получается прокручивать цикл do while) - C++
Не пойму почему не прокручивается цикл ваил ведь условие(оно такое ради избежания лишних циклов) вроде-бы нормальное то что нужно! вот...

Динамический многомерный массив. Нахождение макс. числа, которое в массиве встречаеться более 1 раза. - C++
День добрый! Повился вопрос, как лучше сделать... Отсортировать массив по возрастанию и потом проверять все числа или же, инициализировать...

Нахождение наибольшего элемента в последовательности - C++
По структурам и алгоритмам дали задание, найти наибольшее число с помощью сложения чисел последовательности. Я набросал такой код. Но не...

Нахождение наибольшего общего делителя - C++
Borland C++ Найти наибольший общий делитель двух натуральных чисел a и b.


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

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

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