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

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

Войти
Регистрация
Восстановить пароль
 
VlaDdislav
2 / 2 / 0
Регистрация: 18.12.2012
Сообщений: 77
#1

Сделать функцию, которая принимает одномерный массив и возвращает индексы трех его самых больших элементов(сортировку не использовать), указателями - C++

23.02.2013, 21:02. Просмотров 510. Ответов 3
Метки нет (Все метки)

Сделать функцию, которая принимает одномерный массив и возвращает индексы трех его самых больших элементов(сортировку не использовать), указателями.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.02.2013, 21:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сделать функцию, которая принимает одномерный массив и возвращает индексы трех его самых больших элементов(сортировку не использовать), указателями (C++):

Сделать функцию, которая принимает одномерный массив и возвращает индексы его максимального и минимального элементов, с указателями. С++ - C++
Сделать функцию, которая принимает одномерный массив и возвращает индексы его максимального и минимального элементов, с указателями. С++

Сделать функцию, которая принимает двумерный массив и возвращает индексы его максимального элемента(номер строки и столбца), с указателями, С++ - C++
Сделать функцию, которая принимает двумерный массив и возвращает индексы его максимального элемента(номер строки и столбца), с указателями,...

Написать функцию, которая принимает число, а возвращает его факториал - C++
Написать функцию, в которую передают число х, а возвращает х! (факториал этого числа)(Консольное приложение) Дублирование тем...

Реализовать функцию, которая принимает массив и возвращает количество простых чисел в нем - C++
Ребят , есть задачи , а в частности нужно с помощью функций и деления по остатку (%) написать несколько программ , а именно : 1)...

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

Сделать функцию, которая по порядковому номеру числа Фибоначчи возвращает его значение - C++
Сделать функцию, которая по порядковому номеру числа Фибоначчи возвращает его значение С++

3
Vaiz
104 / 98 / 30
Регистрация: 01.07.2012
Сообщений: 277
Завершенные тесты: 1
23.02.2013, 21:50 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void search(int *x, int n, int *max) //массив, размер, массив номеров макс элементов
{
int i;
max[0]=max[1]=max[2]=0;
for(i=1;i<n;i++)
{
if(x[i]>x[max1])
{
max[2]=max[1];
max[1]=max[0];
max[0]=i;
}
}
}
Не будет работать если максимальное число 1е. Чтобы работала надо искать минимальное и присваивать в начале массиву номер минимального числа.

Добавлено через 7 минут
Это если конкретно через указатели надо
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void search(int *x, int n, int *max1, int *max2, int *max3) 
{
int i;
*max1=*max2=*max3=0;
for(i=1;i<n;i++)
{
if(x[i]>x[*max1])
{
*max[2]=*max[1];
*max[1]=*max[0];
*max[0]=i;
}
}
}
0
HighPredator
5544 / 1857 / 346
Регистрация: 10.12.2010
Сообщений: 5,479
Записей в блоге: 2
23.02.2013, 21:57 #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
38
39
40
41
42
#include<iostream>
 
using namespace std;
 
int* Search(int A[], const int N)
{
    int *max=new int[3];
    max[0]=A[0];
    max[1]=A[0];
    max[2]=A[0];
    for(int i=1;i<N;i++)
    {
        if(A[i]>max[0])
        {
            max[2]=max[1];
            max[1]=max[0];
            max[0]=A[i];
        }
    }
    return max;
}
 
 
int main()
{
    int *a;
    int N;
    cout<<"Enter array size:";
    cin>>N;
    a=new int[N];
    for(int i=0;i<N;i++)
    {
        cout<<"Enter a["<<i<<"]: ";
        cin>>a[i];
    }
    int *max=Search(a,N);
    cout<<"max0="<<max[0]<<" max1="<<max[1]<<" max2="<<max[2]<<endl;
    delete []max;
    delete []a;
    getchar();
    return 0;
}
1
ya_noob
_
202 / 146 / 9
Регистрация: 08.10.2011
Сообщений: 432
24.02.2013, 08:16 #4
Vaiz, HighPredator, вы не учли всех случаев, а именно если max[ 1 ] < a[ i ] < max[ 0 ] и если max[ 2 ] < a[ i ] < max[ 1 ]

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
#include <iostream>
#include <climits>
using namespace std;
 
struct Three
{
    int *a, *b, *c;
};
int MIN_VAL = INT_MIN;
 
Three search3Max( int *a, int n )
{
    Three r;
    
    r.a = &MIN_VAL; r.b = &MIN_VAL; r.c = &MIN_VAL;
    for ( int i = 0; i < n; ++i )
        if ( a[ i ] > *r.a ) { r.c = r.b; r.b = r.a; r.a = &a[ i ]; }
        else if ( a[ i ] > *r.b ) { r.c = r.b; r.b = &a[ i ]; }
        else if ( a[ i ] > *r.c ) r.c = &a[ i ];
    return r;
}
 
int main()
{
    const int N = 10;
    int a[ N ] = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
//  int a[ N ] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
//  int a[ N ] = { 9, 0, 8, 1, 7, 2, 6, 3, 5, 4 };
//  int a[ N ] = { 8, 6, 4, 2, 0, 1, 3, 5, 7, 9 };
    Three max;
 
    cout << "Array: ";
    for ( int i = 0; i < N; ++i ) cout << a[ i ] << " ";
    max = search3Max( a, N );
    cout << "\nMax values:\n1st: " << *max.a << "\n2nd: " << *max.b << "\n3rd: " << *max.c << endl;     
 
    return 0;
}
2
24.02.2013, 08:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.02.2013, 08:16
Привет! Вот еще темы с ответами:

Написать функцию, которая принимает два числа и возвращает - C++
Режить все !!!Буду благодарин!!Заранее спасибо!!

Написать функцию, которая принимает два числа и возвращает - C++
Решите пожалуйста!!!!!!!!!!! 4 ) число, которое получается, если к первому числу приписать справа второе (например, ...

Написать функцию, которая принимает строку звуков, а возвращает звук - C++
Всем привет! В общем, я хочу разобраться с алгоритмом в такой задаче: в каком-то языке есть только 4 звука, назовем их А, В, C, D, а...

Написать функцию, которая принимает количество часов, и возвращает стоимость стоянки - C++
На некоторой автостоянке минимальная плата за размещение автомобиля 2Ls. В случае если машина остаётся на стоянке дольше 3 часов,...


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

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

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