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

Массивы. Найти произведение только тех чисел, которые больше заданного числа М. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
Викулька
 Аватар для Викулька
0 / 0 / 0
Регистрация: 09.06.2011
Сообщений: 33
26.02.2012, 20:30     Массивы. Найти произведение только тех чисел, которые больше заданного числа М. #1
Дана последовательность целых положительных чисел. Найти произведение только тех чисел, которые больше заданного числа М. если таких нет, то выдать сообщение об этом.
Массив задать рандомно.
Помогите парни!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2012, 20:30     Массивы. Найти произведение только тех чисел, которые больше заданного числа М.
Посмотрите здесь:

Составьте программу, которая выводит индексы тех элементов массива (состоящего из В целых чисел), значение которых больше заданного числа А C++
найти произведение только тех из них которые больше заданного M C++
Дана последовательность целых положительных чисел. Найти произведение только тех чисел, которые больше заданного числа М C++
C++ Массивы. найти индексы тех элементов массива , которые больше своего правого соседа и количество таких элементов (почему то не работает корректно)
C++ накопить произведение только тех чисел из этого ряда, которые заканчиваются на цифру 1
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
LK
26.02.2012, 20:36
  #2
 Комментарий модератора 
Викулька, Правила
3.3. Запрещено создавать темы с бессмысленными названиями вроде "Помогите!", "Вопрос" и т.п.
Изначальное название темы: "Массивы".
Викулька
 Аватар для Викулька
0 / 0 / 0
Регистрация: 09.06.2011
Сообщений: 33
26.02.2012, 20:49  [ТС]     Массивы. Найти произведение только тех чисел, которые больше заданного числа М. #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
//—————————————————————————————————————-
 
#pragma hdrstop
#include <conio.h>
#include <iostream>
using namespace std;
 
//—————————————————————————————————————-
 
#pragma argsused
int main(int argc, char* argv[])
{
int M,S=1;
int i,n,mas[10];
cout<<"MAS OT 0 DO ";cin>>n;
for(i=0; i<10; i++)
{
mas[i]=rand()%n;
cout<<"Mas["<<i<<"] = "<<mas[i]<<endl;
}
cout<<endl<<"Input M - ";cin>>M;
for(int i=0; i<10; i++)
{
if(mas[i]>M)
{
S=S*mas[i];
cout<<"["<<i<<"] - "<<mas[i]<<endl; //Proverca kakie element ymnosaet
}
}
if(S==1)
cout<<"null"<<endl;
else
cout<<"* - "<<S<<endl;
_getch ();
return 0;
}
//—————————————————————————————————————-
zss
Модератор
Эксперт С++
 Аватар для zss
5953 / 5558 / 1787
Регистрация: 18.12.2011
Сообщений: 14,204
Завершенные тесты: 1
26.02.2012, 21:22     Массивы. Найти произведение только тех чисел, которые больше заданного числа М. #4
Компилируется и исполняется без ошибок.
А что, у Вас не получается?
__bool
 Аватар для __bool
284 / 225 / 6
Регистрация: 13.06.2010
Сообщений: 744
29.02.2012, 12:57     Массивы. Найти произведение только тех чисел, которые больше заданного числа М. #5
Консольную?

Добавлено через 8 минут
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
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    randomize();
    const short N = 20; // Размер массива
    int A[N]; // Целочисленный массив из N элементов
    int M,
        Count=0; // Для подсчетка кол-ва + играет роль флага: есть/нет элементов
    long double Res=1; // Res - результат произдведения элементов
    cout << "Input M: ";
    cin >> M;
    for (int i = 0; i < N; ++i) {
        A[i] = rand()%10; // Генерируем случайные значения
        cout << A[i] << "\t"; // И сразу выводим
        // Если значение элемента массива больше заданного числа M, умножаем
        if (A[i] > M) {
            ++Count;
            Res*=A[i];
        }
    }
 
    cout << "\n\nResult: ";
    // Если нет совпадений
    if (!Count) { // Выводим сообщение об отсутствии
        cout << "No such values";
    }else{ // Иначе выводим результат произведения
        cout << Res;
    }
    cout << "\n\n";
    system("pause");
 
    return 0;
}
Добавлено через 16 часов 26 минут
Поправил код..
long double Res; - потому что если брать int/long int возможен выход за предел диапазона..
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
29.02.2012, 13:25     Массивы. Найти произведение только тех чисел, которые больше заданного числа М. #6
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
#include <iostream>
#include <algorithm>
#include <iterator>
#include <cstdlib>
#include <vector>
#include <ctime>
 
int main()
{
    srand(time(0));
    int m, pr = 1;
    std::cin>>m;
    std::vector <int> vec(15);
    std::generate(vec.begin(), vec.end(), [] () { return rand()%10; });
    std::copy(vec.begin(), vec.end(), std::ostream_iterator <int> (std::cout, " "));
    std::for_each(vec.begin(), vec.end(), [&pr, &m] (int num) -> int
    {
        if(num > m)
            pr *= num;
        return num;
    });
    std::cout<<"\nPr = "<<pr<<std::endl;
    system("pause");
    return 0;
}
__bool
 Аватар для __bool
284 / 225 / 6
Регистрация: 13.06.2010
Сообщений: 744
29.02.2012, 13:28     Массивы. Найти произведение только тех чисел, которые больше заданного числа М. #7
Dekio, я полагаю зря я не выучил STL?
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
29.02.2012, 13:31     Массивы. Найти произведение только тех чисел, которые больше заданного числа М. #8
__bool, многие задачи можно легко решить через STL или Tulip
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
01.03.2012, 18:33     Массивы. Найти произведение только тех чисел, которые больше заданного числа М. #9
Dekio,
Цитата Сообщение от Викулька Посмотреть сообщение
если таких нет, то выдать сообщение об этом.
еще одного bool не хватает.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.03.2012, 22:10     Массивы. Найти произведение только тех чисел, которые больше заданного числа М.
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
01.03.2012, 22:10     Массивы. Найти произведение только тех чисел, которые больше заданного числа М. #10
Цитата Сообщение от valeriikozlov Посмотреть сообщение
еще одного bool не хватает.
можно и без него обойтись

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
#include <iostream>
#include <algorithm>
#include <iterator>
#include <cstdlib>
#include <vector>
#include <ctime>
 
int main()
{
    srand(time(0));
    int m, res = 1;
    std::cin>>m;
    std::vector <int> vec(15);
    std::generate(vec.begin(), vec.end(), [] () { return rand()%10 + 1; });
    std::copy(vec.begin(), vec.end(), std::ostream_iterator <int> (std::cout, " "));
    if(std::find_if(vec.begin(), vec.end(), [m] (int num) { return num > m; }) != vec.end())
    {
        std::for_each(vec.begin(), vec.end(), [&res, m] (int num) -> int
        {
            if(num > m)
                res *= num;
            return num;
        });
        std::cout<<std::endl<<"Result = "<<res<<std::endl;
    }
    else
        std::cout<<std::endl<<"All elements less than m"<<std::endl;
    system("pause");
    return 0;
}
Yandex
Объявления
01.03.2012, 22:10     Массивы. Найти произведение только тех чисел, которые больше заданного числа М.
Ответ Создать тему
Опции темы

Текущее время: 13:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru