-Цитата от иксуй!
Если я правильно понял задачу, то мы должны вычислить произведение элементов, находящихся строго между максимальным и минимальным, через один.
То есть если есть пример:
14 13 12 11 5 1 4 3 6 2 8 15 9 7 10
то нужно вычислить произведение 4 * 6 * 8
так?
если так, то в одном цикле это будет выглядеть примерно так:
да ты правильно понял..спасибо.охуеноо
Добавлено через 2 дня 1 час 55 минут
-Цитата от иксуй!
-Цитата от A_D
-Цитата от иксуй!
Хотел бы я посмотреть на решение твоей задачи преподом.
хз..этот пидор еще тот хуеплет.будет ебать мозг до последнего..и ничгео не скажет.
-Цитата от Сахей
на сайберфорум сходи=)должны помочь
да там, даже не хотят заходить в тему
![smile](images/smilies/smile.gif)
Если я правильно понял задачу, то мы должны вычислить произведение элементов, находящихся строго между максимальным и минимальным, через один.
То есть если есть пример:
14 13 12 11 5 1 4 3 6 2 8 15 9 7 10
то нужно вычислить произведение 4 * 6 * 8
так?
если так, то в одном цикле это будет выглядеть примерно так:
Показать скрытый текст
Код:
#include <iostream>
#include <math.h>
#include <conio.h>
using namespace std;
int main()
{
setlocale(LC_ALL, "RUS");
const int N=15;
int i,j, proizv,index_min,index_max;
double mas[N], masMax = 0, masMin = 100500;
cout << "Введите элементы массива:\n";
for (i = 0; i < N; i++)
{
cout << "mas[" << i << "] -> ";
cin >> mas[i];
}
int partMultStart[N];
int partMultEnd[N];
partMultStart[0] = mas[0];
partMultStart[1] = mas[1];
partMultEnd[N - 1] = mas[N - 1];
partMultEnd[N - 2] = mas[N - 2];
for(i = 2, j = N - 3; i < N, j >= 0; i++, j--)
{
partMultStart[i] = partMultStart[i - 2] * mas[i];
partMultEnd[j] = partMultEnd[j + 2] * mas[j];
if(mas[i] > masMax)
{
index_max = i;
masMax = mas[i];
}
if(mas[i] < masMin)
{
index_min = i;
masMin = mas[i];
}
if(mas[j] > masMax)
{
index_max = j;
masMax = mas[j];
}
if(mas[j] < masMin)
{
index_min = j;
masMin = mas[j];
}
}
int si = min(index_max, index_min);
int ei = max(index_max, index_min);
bool isEvensi = si & 1 ? false : true;
bool isEvenei = ei & 1 ? false : true;
proizv = isEvensi ? partMultStart[N - 2] : partMultStart[N - 1];
if(si > 0)
{
proizv /= partMultStart[si - 1];
}
if(isEvenei == isEvensi && ei + 1 < N)
{
proizv /= ei + 1 < N ? partMultEnd[ei + 1] : 1;
}
else
{
proizv /= partMultEnd[ei];
}
cout << proizv;
getch();
return 0;
}
этот ебала,сегодня говорит..вот это правильно, но не правильно..
ты сделал правильно в одном цикле,но этот 1 цикл через 2 проходит..тобишь. твою программу можно разбить на 2 цикла сейчас..а я тебя просил напечатать программу которая выполняет за 1 цикл и не будет разбиваться на подциклы
![хм](images/smilies/neutr.gif)
я охуел сижу нихуя не вдупляю, что ему нужно..говорю что сделать нужно..говорит,что понял ход мыслей, но зачем я задал 2 переменные тут,когда можно сделать 1 проверку, через 1 переменную..типо зачем ты сделал вот это
Показать скрытый текст
for(i = 2, j = N - 3; i < N, j >= 0; i++, j--)
{
partMultStart[i] = partMultStart[i - 2] * mas[i];
partMultEnd[j] = partMultEnd[j + 2] * mas[j];
if(mas[i] > masMax)
{
index_max = i;
masMax = mas[i];
}
if(mas[i] < masMin)
{
index_min = i;
masMin = mas[i];
}
if(mas[j] > masMax)
{
index_max = j;
masMax = mas[j];
}
if(mas[j] < masMin)
{
index_min = j;
masMin = mas[j];
}
задал жи и и..когда через и получится тоже самое..так сижу и начал охуевать еще более..че делать не знаю