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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Олимпиадные задачи www.acmp.ru http://www.cyberforum.ru/cpp-beginners/thread21291.html
Привет, Народ! У кого-нибудь есть решенные задачи с сайта ********? Буду очень благодарен, если скинете чего-нить. venoblast@mail.ru Добавлено через 1 час 15 минут 43 секунды Очень для курса, надо.... препод жестокий....
C++ случайные числа в с++ День добрый . Задание : игра в кубики с компом . Не могу понять как сделать для компа и человека действительно разные числа . Делал через rand() получались одинаковые , сделал одному через rand(), а второму через srand(time(NULL)) получилось , что один постоянно выигрывает . Кто знает ответьте пожалуйста http://www.cyberforum.ru/cpp-beginners/thread21282.html
C++ WinAPI Ошибка: "GET_X_LPARAM undeclared"
Просьба, дайте ссылку на какую-нибудь подробную литературу с примерами по этой теме. Вопрос - есть такой код: LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_DESTROY: PostQuitMessage (0); break; case WM_MOUSEMOVE:
C++ подключение *.lib используя mingw + eclipse
Здравствуйте. Есть библиотека *.lib. Подскажите, как подключить ее к проекту в eclipse? В инете все о MSVC или для Linux.
C++ найти сумму элементов массива из 10 чисел http://www.cyberforum.ru/cpp-beginners/thread21201.html
всем привет С не знаю нада в универ сделать пару задачек : нада найти сумму элементов массива из 10 чисел при етом чтоб вводились с клавиатуры и выводились на экран с помощью како гото принтефа))) знаю что ето нубский вопрос но препад сказал сделать хоть ето))))
C++ посоветуйте учебник для самостоятельного изучения с++ (с нуля) сабж подробнее

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

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

20.01.2009, 21:26. Просмотров 1244. Ответов 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-го максимального элементов массива. Спасибо
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru