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

Задачи на C++. - C++

Восстановить пароль Регистрация
 
MikaAtMika
Сообщений: n/a
29.01.2012, 23:15     Задачи на C++. #1
Мне посоветовали ваш форум парни с моей группы, сказали что здесь должны помочь. Так вот у нас по программированию Visual studio, а там C++, препод дал мне решить 2 задачи это контрольные.

1. Датчиком случайных чисел сгенерируйте натуральное число в интервале от 100 до 900. В полученном числе подсчитайте количество цифр, которые больше пяти.

2. Даны два массива различных размеров A(N) и В(М), где N <> M . Определите все элементы первого массива, которых нет во втором и, наоборот, все элементы второго массива, которых нет в первом. Результаты поместите в массивы.

Буду очень признательна, спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2012, 23:15     Задачи на C++.
Посмотрите здесь:

C++ задачи
C++ Задачи по C++
Задачи по C++ C++
Задачи С++ C++
C++ Задачи
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
29.01.2012, 23:29     Задачи на C++. #2
Цитата Сообщение от MikaAtMika Посмотреть сообщение
1. Датчиком случайных чисел сгенерируйте натуральное число в интервале от 100 до 900. В полученном числе подсчитайте количество цифр, которые больше пяти.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <boost/lexical_cast.hpp>
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <algorithm>
#include <string>
 
int main()
{
    std::srand(std::time(nullptr));
    const int a = std::rand() % 801 + 100;
    std::cout << a << std::endl;
    std::string num = boost::lexical_cast<std::string>(a);
    std::cout << std::count_if(num.begin(), num.end(), [](const char& c) { return c > '5'; } ) << std::endl;
    return 0;
}
http://liveworkspace.org/code/8bd4c3...e7412df487e664

Добавлено через 2 минуты
Без буста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <cstdlib>
#include <ctime>
 
int main()
{
    std::srand(std::time(nullptr));
    int a = std::rand() % 801 + 100;
    std::cout << a << std::endl;
    std::size_t count = 0;
    while(a)
    {
        if(a % 10 > 5)
            ++count;
        a /= 10;
    }
    std::cout << count << std::endl;
    return 0;
}
Добавлено через 40 секунд
http://liveworkspace.org/code/3f271d...d314c0c66075f3
MikaAtMika
Сообщений: n/a
30.01.2012, 08:59     Задачи на C++. #3
soon, Ого, спасибо.

Добавлено через 9 часов 19 минут
А как решается вторая?
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
30.01.2012, 11:19     Задачи на C++. #4
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <iostream>
#include <algorithm>
#include <vector>
#include <cstdlib>
#include <ctime>
#include <iterator>
 
int main()
{
    std::srand(std::time(nullptr));
    const int n = 10;
    const int m = 15;
    
    std::vector<int> a(n);
    std::generate(a.begin(), a.end(), [] { return std::rand() % 21; });
    std::copy
    (
        a.begin(),
        a.end(),
        std::ostream_iterator<int>(std::cout, " ")
    );
    std::cout << std::endl;
    
    std::vector<int> b(m);
    std::generate(b.begin(), b.end(), [] { return std::rand() % 21; });
    std::copy
    (
        b.begin(),
        b.end(),
        std::ostream_iterator<int>(std::cout, " ")
    );
    std::cout << std::endl;
    
    std::sort(a.begin(), a.end());
    std::sort(b.begin(), b.end());
    
    auto aIt = std::unique(a.begin(), a.end());
    auto bIt = std::unique(b.begin(), b.end());
    
    std::vector<int> onlyA, onlyB;
    
    std::set_difference
    (
        a.begin(),
        aIt,
        b.begin(),
        bIt,
        std::back_inserter(onlyA)
    );
    
    std::set_difference
    (
        b.begin(),
        bIt,
        a.begin(),
        aIt,
        std::back_inserter(onlyB)
    );
    
    std::cout << "only in a - ";
    std::copy
    (
        onlyA.begin(),
        onlyA.end(),
        std::ostream_iterator<int>(std::cout, " ")
    );
    std::cout << std::endl << "only in b - ";
    std::copy
    (
        onlyB.begin(),
        onlyB.end(),
        std::ostream_iterator<int>(std::cout, " ")
    );
    std::cout << std::endl;
    
    return 0;
}
http://liveworkspace.org/code/18ff48...688ab162052510
Yandex
Объявления
30.01.2012, 11:19     Задачи на C++.
Ответ Создать тему
Опции темы

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