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

Найти произведение второго минимума и третьего максимума массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывести все простые числа от M до N включительно http://www.cyberforum.ru/cpp-beginners/thread21301.html
Ребят, как можно сократить время выполнения этой задачи. Необходимо вывести все простые числа от M до N включительно. В выходной файл OUTPUT.TXT выведите в одной строке через пробел все простые...
C++ Олимпиадные задачи www.acmp.ru Привет, Народ! У кого-нибудь есть решенные задачи с сайта ********? Буду очень благодарен, если скинете чего-нить. venoblast@mail.ru Добавлено через 1 час 15 минут 43 секунды Очень для... http://www.cyberforum.ru/cpp-beginners/thread21291.html
C++ случайные числа в с++
День добрый . Задание : игра в кубики с компом . Не могу понять как сделать для компа и человека действительно разные числа . Делал через rand() получались одинаковые , сделал одному через rand(), а...
C++ Подскажите. Бинарное дерево
подскажите пожалуйста, как сделать так чтобы при совпадении вершин(той которая уже в дереве с той, которую пытаемся добавить) обе выводились в мемо, например: дерево: 27 13 ...
C++ подключение *.lib используя mingw + eclipse http://www.cyberforum.ru/cpp-beginners/thread21236.html
Здравствуйте. Есть библиотека *.lib. Подскажите, как подключить ее к проекту в eclipse? В инете все о MSVC или для Linux.
C++ найти сумму элементов массива из 10 чисел всем привет С не знаю нада в универ сделать пару задачек : нада найти сумму элементов массива из 10 чисел при етом чтоб вводились с клавиатуры и выводились на экран с помощью како гото принтефа)))... подробнее

Показать сообщение отдельно
storm24
Сообщений: n/a

Найти произведение второго минимума и третьего максимума массива - C++

20.01.2009, 21:26. Просмотров 1289. Ответов 3
Метки (Все метки)

Текст задачи:
Задан вещественный массив размера N. Найти произведение второго минимума и третьего максимума массива. Все элементы, расположенные между ними, заменить нулями. Пример:
0 8 6 4 7 2 1 4 9 3 → 7, 0 8 6 4 7 0 1 4 9 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
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
78
79
80
81
82
83
84
#include <stdio.h>
void sort(double array[], int num)
{ //В переменной  last на  каждой итерации  по массиву
//содержится  позиция последнего  элемента,  который
//необходимо обрабатывать. Изначально это значение -
int last = num;     //количество элементов в массиве
while(last>0){//Цикл пока есть элементы для обработки
//В переменной  pos  содержится  индекс  последнего
//элемента массива, значение которого было обменено
//с  предыдущим  элементом.  Изначально  на  каждой
int pos = 0;  //итерации цикла это значение - ноль.
//Цикл от первого элемента массива,  до того
//элемента, который исключен из обработки на
//предыдущей итерации цикла while
for(int i=0;i<last-1;i++)
//Если предыдущий элемент <больше> последующего
if(array[i]>array[i+1]){ //элемента,  то  обмен
double tmp = array[i];   //значений   элементов
array[i] = array[i+1]; //через дополнительную
array[i+1] = tmp;      //переменную
//запоминаем позицию последнего переставленного
pos = i+1; //элемента
}
//исключаем упорядоченные элементы из последующей
last = pos;                           //обработки
}
}
 
 
/*int lsearch(double value,double array[], int num)
{
   --------------------------------------------------
  /* Цикл по всем элементам массива, начиная с элемента
   с номером (индексом)  ind,  если  текущий  элемент
   массива равен искомому, то возвращаем его индекс
  -------------------------------------------------- */
  /*for(int z=1;z<num;z++) {
    if(round(array[z-1])==round(value)) return z; }
  //Если элемент не был найден, то возвращаем код
  return -1;      //отрицательного результата: -1
}
*/
 
int main(int argc, char *argv[])
{
int n;
printf("Vvedite kol-vo elementov: ");
scanf("%d",&n);
double a[n],b[n];
printf("vvedite massiv: ");
for (int i=0;i<n;i++) {
scanf("%lf",&a[i]);
b[i]=a[i];
}
sort(b,n);
 
int min;
for(int z=0;z<n;z++) {
printf("%lf  %lf  %lf \n", a[z], b[1], z);
 if (a[z]== b[1])  min=z;  
}
 
 
int max;
 for(int k=0;k<n;k++) {
printf("%lf  %lf  %lf \n", a[k], b[n-3], k);
 if (a[k]== b[n-3])  max=k;  }
 
//int min = lsearch(b[1],a,n);
//int max = lsearch(b[n-3],a,n);
printf("%lf  %lf\n", max, min);
printf("%lf  %lf\n ", b[n-3], b[1]);
 
for (int i=1;i<n-1;i++)
{
if ( ( (a[i-1]==max) || (a[i-1]==min) )&&( (a[i+1]==max) || (a[i+1]==min) ) ) {a[i]=0;}
}
 
 
double res;
res=b[1]*b[n-3];
printf("%lf", res);
for (int i=0;i<n;i++) {printf("%lf ",a[i]); }
}
Помогите пожалуйста. Не могу получить индексы 2-го минимального и 3-го максимального элементов массива. Спасибо
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru