Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2014, 16:34   #1
dissable1
 
Регистрация: 05.12.2014
Сообщений: 7
По умолчанию произведение последних элементов в массиве

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

Найти произведение последних L элементов в массиве A={a[i]}.

Я написал программу,где можно задать числа двумя способами,теперь 2 вопроса:
1.Как сделать проверку на диапазон при вводе чисел вручную?Нужно чтобы числа были в пределе от SHRT_MIN до SHRT_MAX ,и если выходит,то повторить попытку.
2.Как найти произведение последних L элементов?Как я понял L задаётся пользователем,но как отсчитать это количество?
Код:
#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];
	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] << ' ';
	return 0;
}
dissable1 вне форума Ответить с цитированием
Старый 12.12.2014, 22:41   #2
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Цитата:
Как найти произведение последних L элементов?Как я понял L задаётся пользователем,но как отсчитать это количество?
Очень просто. У Вас массив из N элементов, начиная с 0-го. Вычитаем из N 1 и L.
Получим первый элемент массива который подсчитывается. Произведению присваиваем данное значение, а далее цикл с перебором от N-L до N и присваивание произведению предыдущего значения произведения на текущий элемент массива
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума Ответить с цитированием
Старый 20.12.2014, 18:21   #3
dissable1
 
Регистрация: 05.12.2014
Сообщений: 7
По умолчанию

Можете пожалуйста написать код?Массивы плохо усвоил,не понимаю как реализовать
dissable1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
11. Найти произведение элементов нечетных строк массива. Вывести сам массив и произведение. p-6 Паскаль, Turbo Pascal, PascalABC.NET 1 29.11.2012 23:37
В массиве из п элементов много совпадающих элементов. Найти количество различных элементов Strax Фриланс 11 12.06.2010 20:13
В файле F1 найти произведение последних пяти элементов. Полученным значением заменить каждую вторую компо SEKTOR Помощь студентам 0 12.04.2010 23:27
Произведение отрицательных элементов в одномерном массиве - в чём ошибка? Жека:) Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 06.04.2009 16:10
Найти сумму последних L положительных элементов в массиве A={a[i]}. Assembler Kasim Помощь студентам 2 16.12.2007 16:12