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

Напечать число, которое меньше максимального элемента,но больше всех остальных элементов - C++

Восстановить пароль Регистрация
 
IlyaCool
 Аватар для IlyaCool
1 / 1 / 0
Регистрация: 04.12.2011
Сообщений: 186
02.04.2012, 20:56     Напечать число, которое меньше максимального элемента,но больше всех остальных элементов #1
Составить программу,которая в массиве A[N] находит второе по величине число(вывести на печать число,которое меньше максимального элемента массива,но больше всех других элементов).
Задача по теме "Нерекурсивные процедуры и функции".
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2012, 20:56     Напечать число, которое меньше максимального элемента,но больше всех остальных элементов
Посмотрите здесь:

Дано натуральное число n>0 и последовательнось чисел из n елементов, найти количество всех чисел которые больше за 0 и меньше за 0 C++
C++ Как вставить индекс после максимального элемента массива со смещением остальных элементов?
C++ Передать в функцию целое число. Функция заменяет его на ближайшее простое число, которое больше или меньше исходного. Вернуться в main( ) и распечатат
C++ Вычислить Среднее арифм. значение элементов массива и число пар элементов которых сосед слева (т.е. индекс которого на 1 меньше) больше по величине
Даны линейный массив действительных чисел. Вычислить произведение всех элементов, значения которых больше 4 и меньше 10 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
02.04.2012, 21:43     Напечать число, которое меньше максимального элемента,но больше всех остальных элементов #2
Если массив A[N] уже есть, то можно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int max2=A[0], max=A[0], i;
for(i=1; i<N; i++)
{
    if(A[i]>max)
    {
        max2=max;
        max=A[i];       
    }
    else
        if(A[i]>max2 && A[i]!=max)
            max2=A[i];
}
// вот здесь в max2 нужное значение
IlyaCool
 Аватар для IlyaCool
1 / 1 / 0
Регистрация: 04.12.2011
Сообщений: 186
02.04.2012, 23:09  [ТС]     Напечать число, которое меньше максимального элемента,но больше всех остальных элементов #3
Цитата Сообщение от valeriikozlov Посмотреть сообщение
Если массив A[N] уже есть, то можно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int max2=A[0], max=A[0], i;
for(i=1; i<N; i++)
{
    if(A[i]>max)
    {
        max2=max;
        max=A[i];       
    }
    else
        if(A[i]>max2 && A[i]!=max)
            max2=A[i];
}
// вот здесь в max2 нужное значение
массива нету...как его добавить к этому коду??
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
03.04.2012, 07:36     Напечать число, которое меньше максимального элемента,но больше всех остальных элементов #4
Цитата Сообщение от IlyaCool Посмотреть сообщение
массива нету...

Не по теме:

тяжелый случай, обычно хоть маленький кусочек массива уже есть и его можно нарастить до нужного размера )


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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main()
{
    srand( time( NULL ) );
    const int N=10;
    int A[N], i;
    printf("Ishodn massiv:\n");
    for(i=0; i<N; i++)
    {
        A[i]=rand()%10;
        printf("%d ", A[i]);
    }
    int max2=A[0], max=A[0];
    for(i=1; i<N; i++)
    {
        if(A[i]>max)
        {
            max2=max;
            max=A[i];       
        }
        else
            if(A[i]>max2 && A[i]!=max)
                max2=A[i];
    }
    printf("\nRes= %d\n", max2);
 
 
    return 0;
}
ATEUCT
18 / 18 / 2
Регистрация: 28.02.2012
Сообщений: 35
03.04.2012, 07:42     Напечать число, которое меньше максимального элемента,но больше всех остальных элементов #5
как по мне так сортануть масив по спаданию и вывести первый по порядку елемент который будет отличаться от первого елемента масива полегче)
a.n.o.n.i.m
137 / 137 / 15
Регистрация: 26.02.2011
Сообщений: 492
03.04.2012, 08:26     Напечать число, которое меньше максимального элемента,но больше всех остальных элементов #6
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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
int main()
{
     int n,i,j,max,max2;
     while(!fflush(stdin)&&printf("Vvedite razmernost n = ")&&!scanf("%i",&n));
     int *A=(int*)malloc(n*sizeof(int));
     for (i=0; i<n; i++)
     {
                while(!fflush(stdin)&&printf("A[%i] = ",i+1)&&!scanf("%i",&A[i]));
     }
     system("cls");
     printf("Massiv A: ");
     for(i=0;i<n;i++)
     {
                printf("%i ",A[i]);
     }
     max=A[0];
     max2=A[0];
     for(i=0;i<n;i++)
     {
                if(A[i]>max)
                {
                        max2=max;
                        max=A[i];
                }     
                else
                {
                        if(A[i]>max2 && A[i]!=max)
                        {
                                   max2=A[i];
                        }
                }
     }
     printf("\n\nMax. chislo = %d",max);
     printf("\nMax. chislo-1 = %d",max2);
     getch();
     return 0;
}
Такой вариант с динам.выделением памяти и своим заполнением и выводом на экран массива ичисла
Yandex
Объявления
03.04.2012, 08:26     Напечать число, которое меньше максимального элемента,но больше всех остальных элементов
Ответ Создать тему
Опции темы

Текущее время: 20:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru