Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> произведение последних элементов в массиве, Помогите дописать пару строчек  
:(
    Опции темы
dissable1
Дата 22.12.2014, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 22.12.2014

Репутация: нет
Всего: нет



Задание такое:
Задав одномерный массив целочисленных данных А в одном из заданных форматов, реализовать обработку массива, как указа-но в варианте. Длина статического массива N<=20. Значение N ввести с клавиатуры с проверкой на допустимые значения. Предусмотреть возможность ввода значений элементов массива пользователем и с помощью датчика случайных чисел.

Найти произведение последних L элементов в массиве A={a[i]}.
Я всё сделал ,до произведения.Дальше тупик..
Код

#include <iostream>
#include <windows.h>
#include <cmath>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
    SetConsoleOutputCP(1251);
    const short N = 20;
    short n, mas[N],L,proizv;
    while (true)
    {
        cout << "Введите n-->";
        cin >> n;
        if (n > 0 && n <= N) break;
        cout << "Неправильное значение,повторите попытку" << endl;
    }
    int choise;
    do
    {
        cout << "1 - заполнение массива вручную" <<endl
            << "2 - заполнение случайными числами" <<endl;
        cin >> choise;
        switch (choise)
        {
        case 1:
            cout << "понял,заполняйте сами!" << endl;
            for (int i = 0; i < n; ++i)
            cin >> mas[i];
            break;
            case 2:
            srand((unsigned)time(NULL));
            for (int i = 0; i < n; ++i)
                mas[i] = rand();
            break;
        default:cout << "Неправильное значение!" <<endl;
        }
    } while ((choise < 1 || choise > 2));
    cout << "Массив-->";
    for (int i = 0; i < n; ++i)
        cout << mas[i] << ' ' << endl;
    cout << "введите L-->";
    cin >> L;


Мне сказали что нужно дальше запускать цикл 
for (int i = n-1; i => L; --i) и умножать всё
Но мозг не варит,помогите пожалуйста дописать
PM MAIL   Вверх
baldina
Дата 22.12.2014, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 15
Всего: 101



Код

if (L > n) L=n;
int product=1;
for (int i = n-1; i >= n-L; --i)
  product *= mas[i];



Это сообщение отредактировал(а) baldina - 22.12.2014, 18:10
PM MAIL   Вверх
feodorv
Дата 22.12.2014, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Цитата(dissable1 @  22.12.2014,  14:28 Найти цитируемый пост)
    short proizv;

Для short'а уж очень велика вероятность напороться на переполнение при перемножении последних элементов. Да и зачем так скромно, когда есть int?

Цитата(baldina @  22.12.2014,  18:10 Найти цитируемый пост)
int product=1;

Вот это другое дело  smile 


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
dissable1
Дата 22.12.2014, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 22.12.2014

Репутация: нет
Всего: нет



А,я забыл написать,что в моём варианте тип short,и нужно сделать проверку на допустимые значения)
PM MAIL   Вверх
dissable1
Дата 22.12.2014, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 22.12.2014

Репутация: нет
Всего: нет



помогите пожалуйста ещё с проверкой.Мне нужно чтобы тип результата был short,и чтобы числа ,которые ввожу в массив,были не больше SHRT_MAX и меньше SHRT_MIN.

PM MAIL   Вверх
baldina
Дата 22.12.2014, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 15
Всего: 101



Цитата(dissable1 @  22.12.2014,  14:28 Найти цитируемый пост)
Я всё сделал ,до произведения.

сомнительно
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0705 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.