Показать сообщение отдельно
A_D
MONOGROME
Аватар для A_D
Сообщения: 11,004
Регистрация: 11.02.2009
Откуда: Бразилия
Старый пост, нажмите что бы добавить к себе блог 11 июня 2013, 06:30
  #2918 (ПС)
-Цитата от иксуй! Посмотреть сообщение
Если я правильно понял задачу, то мы должны вычислить произведение элементов, находящихся строго между максимальным и минимальным, через один.
То есть если есть пример:
14 13 12 11 5 1 4 3 6 2 8 15 9 7 10
то нужно вычислить произведение 4 * 6 * 8
так?
если так, то в одном цикле это будет выглядеть примерно так:
да ты правильно понял..спасибо.охуеноо

Добавлено через 2 дня 1 час 55 минут
-Цитата от иксуй! Посмотреть сообщение
-Цитата от A_D Посмотреть сообщение
-Цитата от иксуй! Посмотреть сообщение
Хотел бы я посмотреть на решение твоей задачи преподом.
хз..этот пидор еще тот хуеплет.будет ебать мозг до последнего..и ничгео не скажет.

-Цитата от Сахей Посмотреть сообщение
на сайберфорум сходи=)должны помочь
да там, даже не хотят заходить в тему
Если я правильно понял задачу, то мы должны вычислить произведение элементов, находящихся строго между максимальным и минимальным, через один.
То есть если есть пример:
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 цикл и не будет разбиваться на подциклы я охуел сижу нихуя не вдупляю, что ему нужно..говорю что сделать нужно..говорит,что понял ход мыслей, но зачем я задал 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];
}

задал жи и и..когда через и получится тоже самое..так сижу и начал охуевать еще более..че делать не знаю

offline
Ответить с цитированием