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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
storm24
Сообщений: n/a
#1

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

20.01.2009, 21:26. Просмотров 1284. Ответов 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-го максимального элементов массива. Спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2009, 21:26     Найти произведение второго минимума и третьего максимума массива
Посмотрите здесь:

Найти индексы минимума и максимума, а также сумму элементов массива между ними - C++
В одномерном массиве, вводимом с клавиатуры и состоящем из 10 вещественных элементов, вычислить: 1) индексы элементов массива с...

Найти произведение элементов массива, расположенных до минимума - C++
Помогите нужно срочно написать программу С++ Задан массив целых чисел P(n). Найти произведение чисел, расположенных до минимума

Заменить первый элемент массива суммой максимума и минимума - C++
Заменить первый элемент массива суммой максимального и минимального элементов

Найти сумму максимума и минимума заданных последовательностей - C++
Дан одномерный массив A. Найти max(a2,a4,...,a2k)+min(a1,a3,...,a2k+1). Напишите пожалуйста как можно проще и с пояснениями. Очень срочно.

Функция поика минимума и максимума двух двухмерных массивов - найти ошибку - C++
Собственно, проблема в том, что при компиляции, если количество строк или столбцов ( не одновременно ) массива больше 1, то выполнение...

Найти фрагмент поиска минимума (максимума) и сформулировать результат работы программы. - C++
помогите пожалуйста описать программку Найти фрагмент поиска минимума (максимума) и сформулировать результат работы программы. Char...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Feda
1 / 0 / 0
Регистрация: 22.12.2008
Сообщений: 19
20.01.2009, 21:41     Найти произведение второго минимума и третьего максимума массива #2
Чет пример не понял. имеются ввиду локальные минимумы? Почему 7 третий максимум?
storm24
Сообщений: n/a
20.01.2009, 21:49     Найти произведение второго минимума и третьего максимума массива #3
Цитата Сообщение от Feda Посмотреть сообщение
Чет пример не понял. имеются ввиду локальные минимумы? Почему 7 третий максимум?
Ну больше 7 там только 8 и 9 => 7 - 3-й максимум
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.01.2009, 22:49     Найти произведение второго минимума и третьего максимума массива
Еще ссылки по теме:

Вычисление минимума/максимума - C++
Даны действительные числа Х,У,Z.Вычислить 1)max (x+y+z;xyz) 2)min (x+y+z/2;чня)+1

Сумма максимума и минимума - C++
Добрый день, не могу решить задачку. Задана последовательность целых чисел. Числа нумеруются по порядку следования, начиная с единицы....

Поиск максимума и минимума - C++
Уважаемые форумчане помогите с задачей немогу понять как её зделать. Задание:N точек на площаде заданы своими координатами (xi,yi)....

Подсчет минимума и максимума в файле - C++
Помогите решить задачу. &quot;Сформировать файл 1) Фамилия велогонщика 2) Количество минут 3) Количество секунд Петров 20 36 ...

Поиск минимума и максимума в двумерном массиве - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int main() { int n; cin &gt;&gt; n; int *a = new int; for...

Нахождение максимума и минимума (вставка ассемблера) - C++
Не работает ассемблерная вставка. Как решить проблему? #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;time.h&gt; #include...


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

Или воспользуйтесь поиском по форуму:
Ensase
Флудер
191 / 29 / 5
Регистрация: 23.03.2007
Сообщений: 335
20.01.2009, 22:49     Найти произведение второго минимума и третьего максимума массива #4
отсортируй массив
и будут индексы
Yandex
Объявления
20.01.2009, 22:49     Найти произведение второго минимума и третьего максимума массива
Ответ Создать тему
Опции темы

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