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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
Викулька
0 / 0 / 0
Регистрация: 09.06.2011
Сообщений: 33
#1

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

26.02.2012, 20:30. Просмотров 1749. Ответов 9
Метки нет (Все метки)

Дана последовательность целых положительных чисел. Найти произведение только тех чисел, которые больше заданного числа М. если таких нет, то выдать сообщение об этом.
Массив задать рандомно.
Помогите парни!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2012, 20:30     Массивы. Найти произведение только тех чисел, которые больше заданного числа М.
Посмотрите здесь:
Найти произведение только тех чисел, которые больше заданного числа М C++
Дана последовательность целых положительных чисел. Найти произведение только тех чисел, которые больше заданного числа М C++
Найти произведение только тех чисел, которые больше заданного M C++
C++ Найти произведение только тех элементов последовательности, которые больше заданного числа М
C++ Накопить произведение только тех чисел из ряда, которые заканчиваются на цифру 1
C++ Найти сумму тех вещественных чисел, которые больше p
C++ Определить среднее арифметическое тех чисел заданной последовательности, которые больше некоторого числа n
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
Модератор
Эксперт С++
6289 / 5892 / 1910
Регистрация: 18.12.2011
Сообщений: 15,130
Завершенные тесты: 1
26.02.2012, 21:22     Массивы. Найти произведение только тех чисел, которые больше заданного числа М. #4
Компилируется и исполняется без ошибок.
А что, у Вас не получается?
__bool
285 / 226 / 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
Фрилансер
Эксперт С++
5837 / 1218 / 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
285 / 226 / 6
Регистрация: 13.06.2010
Сообщений: 744
29.02.2012, 13:28     Массивы. Найти произведение только тех чисел, которые больше заданного числа М. #7
Dekio, я полагаю зря я не выучил STL?
Dekio
Фрилансер
Эксперт С++
5837 / 1218 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
29.02.2012, 13:31     Массивы. Найти произведение только тех чисел, которые больше заданного числа М. #8
__bool, многие задачи можно легко решить через STL или Tulip
valeriikozlov
Эксперт C++
4669 / 2495 / 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++ В одномерном массиве из 10 вещественных чисел заменить все элементы, которые больше заданного числа х
C++ Задан массив целых чисел. Вычислить сумму элементов, которые больше заданного числа
Даны четыре целых числа. Найти сумму тех из них, которые кратны трем и больше пяти C++

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

Или воспользуйтесь поиском по форуму:
Dekio
Фрилансер
Эксперт С++
5837 / 1218 / 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     Массивы. Найти произведение только тех чисел, которые больше заданного числа М.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru