Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/58: Рейтинг темы: голосов - 58, средняя оценка - 4.74
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 8

Как найти три наибольших элемента массива за один просмотр

04.11.2009, 18:56. Показов 10939. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите решить задачу!!! три наибольших элемента массива за один просмотр
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.11.2009, 18:56
Ответы с готовыми решениями:

Напечатать три наибольших элемента массива за один его просмотр
Составить процедуру, печатающую три наибольших элемента массива за один его просмотр. p.s.Как можно проще)

Напечатать три наибольших элемента массива за один его просмотр
Составить процедуру, печатающую три наибольших элемента массива за один его просмотр.

Найти три наибольших элемента массива
Ввести массив действительных чисел длиной n (n < 30). Найти три наибольших элемента массива.

13
эволюционирую потихоньку
 Аватар для TanT
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
04.11.2009, 19:13
где-то была такая же задачка тока для двух. принцип один и тотже. заваодишь три перменные и если массив содержит больше трёх элементов записываешь в них максимальные значения. то есть в 1м совсем максимальное, 2м - нутак средне максимальное и в 3м совсем не масимальное но ещё максимально среди оставшихся и усё
0
 Аватар для breate
56 / 56 / 6
Регистрация: 23.10.2009
Сообщений: 250
04.11.2009, 19:14
уточни условие, очереди проходили
0
425 / 229 / 87
Регистрация: 25.03.2009
Сообщений: 744
04.11.2009, 19:40
Kristinka, отсортируй и возьми первые 3 ) умеешь?
1
эволюционирую потихоньку
 Аватар для TanT
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
04.11.2009, 19:58
Цитата Сообщение от Андрейка Посмотреть сообщение
Kristinka, отсортируй и возьми первые 3 ) умеешь?
за один просмотр? напомни сортировку такую, что-то я упустил
0
425 / 229 / 87
Регистрация: 25.03.2009
Сообщений: 744
04.11.2009, 19:59
TanT, аа там за один да я воще std::sort всунул бы и норм)) меньше всего писать если на С++
0
эволюционирую потихоньку
 Аватар для TanT
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
04.11.2009, 20:05
Цитата Сообщение от Андрейка Посмотреть сообщение
TanT, аа там за один да я воще std::sort всунул бы и норм)) меньше всего писать если на С++
нет, тёска, такое точно для зачёта не прокатит. да сказывается мне, что попахивает ту чистым С. так Kristinka? и в пред уточняйти язык
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
04.11.2009, 21:54
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
#include <windows.h>
#include <iostream.h>
int main ()
{
    int *mas, n, i, a, b, c;
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout<<"Ââåäèòå êîëè÷åñòâî ýëåìåíòîâ ìàññèâà: "<<endl;
    cin>>n;
    mas=new int[n];
    cout<<"Ââåäèòå ýëåìåíòû ìàññèâà: "<<endl;
    for(i=0; i<n; i++)
    {
       cout<<"["<<i<<"]= ";
       cin>>mas[i];
    }
    cout<<"èñõîäíûé ìàññèâ"<<endl;
    for(i=0; i<n; i++)
       cout<<mas[i]<<" ";
    cout<<endl;
    a=mas[0];
    b=mas[1];
    c=mas[2];
    for(i=3; i<n; i++)
        if(mas[i]>=a || mas[i]>=b || mas[i]>=c)
        {
            if(a<=b && a<=c)
                a=mas[i];
            else
                if(b<=c)
                    b=mas[i];
                else
                    c=mas[i];
        }       
        cout<<"Òðè íàèáîëüøèõ ÷èñëà: "<<a<<"  "<<b<<"  "<<c<<endl;
        return 0; 
}
2
Босс
 Аватар для sheka
161 / 126 / 10
Регистрация: 03.06.2009
Сообщений: 750
04.11.2009, 21:58
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
#include <iostream>
#include <conio.h>
using std::cout;     // подключишь cout
using std::cin;       // подключишь cin
using std::endl;     // подключишь endl
 
int max[2];
 
int min_index(int a,int b){
    if (max[a]<=max[b]) return(a);
    else return(b);
}
 
main(){
    int i;
    int n=5;
    int a[n];
    for(i=0;i<=n-1;i++){
        cout<<"vvedi element massiva"<<endl;
        cin>>a[i];
    }
    for(i=0;i<=2;i++){
        max[i]=a[i];
    }
    for(i=3;i<=n;i++){
        if (max[min_index(0,min_index(1,2))]<a[i]){
            max[min_index(0,min_index(1,2))]=a[i];
        }
    }
    for(i=0;i<=2;i++){
        cout<<max[i]<<endl;
    }
    getch();
}
Добавлено через 2 минуты
Андрейка, я даже не догадался сортировкой сделать)))
правда это не в один проход.
1
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 8
04.11.2009, 22:21  [ТС]
Спасибки огромнейшее!

Добавлено через 2 минуты
Я имела ввиду язык с....сорри))))
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
04.11.2009, 22:38
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
#include <windows.h>
int main ()
{
    int *mas, n, i, a, b, c;
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    printf("Ââåäèòå êîëè÷åñòâî ýëåìåíòîâ ìàññèâà: \n");
    scanf("%d", &n);
    mas=new int[n];
    printf("Ââåäèòå ýëåìåíòû ìàññèâà: \n");
    for(i=0; i<n; i++)
        {
       printf("[%d]= ", i);
       scanf("%d", &mas[i]);
        }
    printf("èñõîäíûé ìàññèâ\n");
    for(i=0; i<n; i++)
       printf("%d  ", mas[i]);
    printf("\n");
        a=mas[0];
        b=mas[1];
        c=mas[2];
        for(i=3; i<n; i++)
                if(mas[i]>=a || mas[i]>=b || mas[i]>=c)
                {
                        if(a<=b && a<=c)
                                a=mas[i];
                        else
                                if(b<=c)
                                        b=mas[i];
                                else
                                        c=mas[i];
                }               
        printf("Òðè íàèáîëüøèõ ÷èñëà: %d,  %d,  %d\n", a, b, c);
        return 0; 
}
0
Босс
 Аватар для sheka
161 / 126 / 10
Регистрация: 03.06.2009
Сообщений: 750
05.11.2009, 00:14
valeriikozlov, а в Си cin,cout нет?
0
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
05.11.2009, 13:05
Цитата Сообщение от sheka Посмотреть сообщение
а в Си cin,cout нет?
Там вообще нет классов и объектов, можешь переменную class назвать. :-)
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
05.11.2009, 16:20
Цитата Сообщение от valeriikozlov Посмотреть сообщение
mas=new int[n];
А ещё в С оператора new нет...

Вот ещё вариант, совсем на С
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
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
 
#define GREATESTS_NUM 3
 
int main(){
    int *pArray = NULL;
    int count, i, j, k;
    int greatests[GREATESTS_NUM];
    char buf[BUFSIZ];
    
    for ( i = 0; i < GREATESTS_NUM; i++ )
        greatests[i] = INT_MIN;
    
    printf("Enter array elements count: ");
    fgets(buf, BUFSIZ, stdin);
    if ( ( count = atoi(buf) ) < GREATESTS_NUM ) {
        printf("ERROR: Array can't hold less then %d values!\n", GREATESTS_NUM);
        exit(1);
    }
    if ( ( pArray = (int *)calloc(count, sizeof(int)) ) == NULL ){
        printf("ERROR: Not enough memory!\n");
        exit(1);
    }
    for ( i = 0; i < count; i++ ) {
        printf("Array[%d] = ", i);
        pArray[i] = atoi(fgets(buf, BUFSIZ, stdin));
    }
    
    for ( i = 0; i < count; i++ ) {
        for ( j = 0; j < GREATESTS_NUM; j++ ){
            if ( pArray[i] > greatests[j] ){
                for ( k = (GREATESTS_NUM - 1); k > j; k-- )
                    greatests[k] = greatests[k - 1];
                greatests[j] = pArray[i];
                break;
            }
        }
    }
    
    printf("\nAll Array values:\n");
    for ( i = 0; i < count; i++ )
        printf("Array[%d] = %d\n", i, pArray[i]);
    
    printf("\n%d greatests:\n", GREATESTS_NUM);
    for ( i = 0; i < GREATESTS_NUM; i++ )
        printf("Greatests[%d] = %d\n", i, greatests[i]);
    
    free(pArray);
    exit(0);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.11.2009, 16:20
Помогаю со студенческими работами здесь

Найти три наибольших элемента массива
дан массив действительных чисел K(M,A). найти три наибольших значения.

Найти три наибольших элемента массива.
1.Дан вектор А(n). Вычислить:максимальный элемент вектора; 2.Найти тpи наибольших элемента массива А, состоящего из N элементов.

Найти три наибольших элемента одномерного массива
Вот задание которые не понятно &quot;Найти три наибольших элемента одномерного массива X(20).&quot;

Найти три наибольших элемента одномерного массива X(20)
Найти три наибольших элемента одномерного массива X(20) Мучаюсь уже очень долгое время. Дописал, но считает не правильно. Помогите...

Вывести в порядке убывания три наибольших элемента массива. У меня выводит как хочешь
В принципе вот: x1=mas;x2=mas;x3=mas; for(i=3; i&lt;n; i++) if(mas&gt;=x1 || mas&gt;=x2 || mas&gt;=x3) { ...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru