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

Вывести на экран элементы массива целых чисел в порядке возрастания их числа делителей - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 5.00
leks
Сообщений: n/a
26.11.2007, 00:24     Вывести на экран элементы массива целых чисел в порядке возрастания их числа делителей #1
1 Получить все числа, которые входят в массив по одному разу

2 Вывести на экран элементы массива целых чисел в порядке возрастания их числа делителей.
3 подсчитать число вхождений в строку группы символов abc
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2007, 00:24     Вывести на экран элементы массива целых чисел в порядке возрастания их числа делителей
Посмотрите здесь:

C++ Все числа от 1 до К включительно отсортируйте в порядке возрастания суммы делителей числа (сортировка пузырьком)
Вывести на экран последовательность целых чисел в обратном порядке C++
4. С клавиатуры последовательно вводятся 3 целых числа. Необходимо ввести их на экран в порядке возрастания C++
Дана строка символов что складаютья из цифр разделенных пробелами. Вывести на экран числа этой строки в порядке возрастания их значений C++
C++ Найти в массиве минимальный и максимальный элементы. Вывести в порядке возрастания все целые числа из интервала
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
04.09.2010, 18:13     Вывести на экран элементы массива целых чисел в порядке возрастания их числа делителей #2
  1. 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
    
    #include <iostream>
    #include <map>
    #include <algorithm>
    #include <ctime>
    #include <cstdlib>
     
    int main()
    {
        srand(static_cast<size_t>(time(NULL)));
        size_t arr_size;
        int lower, upper;
        std::cout << "Input the size of the array: ";
        std::cin >> arr_size;
        do
        {
            std::cout << "Input the upper bound: ";
            std::cin >> upper;
            std::cout << "Input the lower bound: ";
            std::cin >> lower;
        }
        while(lower >= upper);
        int * iarray = new int [arr_size];
        std::map<int, size_t> counts;   
        for(size_t i = 0; i < arr_size; ++i)
        {
            iarray[i] = rand() % (upper - lower + 1) + lower;
            std::cout << "#" << i << " : " << iarray[i] << std::endl;
            ++counts[iarray[i]];
        }
        delete[] iarray;
        std::cout << "These numbers occur in the array one time:" << std::endl;
        std::for_each(counts.begin(), counts.end(), [](const std::pair<int, size_t>& ref)
        {
            if(ref.second == 1)
                std::cout << ref.first << std::endl;
        });
        return 0;
    }
bol2909
 Аватар для bol2909
2 / 2 / 1
Регистрация: 29.08.2010
Сообщений: 51
04.09.2010, 18:26     Вывести на экран элементы массива целых чисел в порядке возрастания их числа делителей #3
Nameless One,
Я добавил строчку можете теперь весь текст на русском писать

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
#include <iostream>
#include <map>
#include <algorithm>
#include <ctime>
#include <cstdlib>
 
int main()
{
        setlocale(LC_ALL,"rus");//добавил строку
        srand(static_cast<size_t>(time(NULL)));
        size_t arr_size;
        int lower, upper;
        std::cout << "Введите размер строки: ";
        std::cin >> arr_size;
        do
        {
                std::cout << "Input the upper bound: ";
                std::cin >> upper;
                std::cout << "Input the lower bound: ";
                std::cin >> lower;
        }
        while(lower >= upper);
        int * iarray = new int [arr_size];
        std::map<int, size_t> counts;   
        for(size_t i = 0; i < arr_size; ++i)
        {
                iarray[i] = rand() % (upper - lower + 1) + lower;
                std::cout << "#" << i << " : " << iarray[i] << std::endl;
                ++counts[iarray[i]];
        }
        delete[] iarray;
        std::cout << "These numbers occur in the array one time:" << std::endl;
        std::for_each(counts.begin(), counts.end(), [](const std::pair<int, size_t>& ref)
        {
                if(ref.second == 1)
                        std::cout << ref.first << std::endl;
        });
        return 0;
}
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
04.09.2010, 18:37     Вывести на экран элементы массива целых чисел в порядке возрастания их числа делителей #4

Не по теме:

bol2909, спасибо, я тронут . Однако в linux проблем с кодировкой консоли не существует


2.
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
#include <iostream>
#include <algorithm>
#include <ctime>
#include <cstdlib>
#include <iterator>
 
bool divisor(int a, int b)
{
    return !(a % b);
}
 
size_t divisorsCount(int a)
{
    size_t retval = 0;
    for(size_t i = 2; i <= a / 2; ++i)
        if(divisor(a, i))
            ++retval;
    return retval + 2; //Считаем 1 и само число
} 
 
int main()
{
    srand(static_cast<size_t>(time(NULL)));
    size_t arr_size;
    std::cout << "Input the size of the array: ";
    std::cin >> arr_size;
    size_t lim;
    do
    {
        std::cout << "Input the integer > 2: ";
        std::cin >> lim;
    }
    while(lim <= 2);
    int * iarray = new int [arr_size];  
    for(size_t i = 0; i < arr_size; ++i)
    {
        iarray[i] = rand() % (lim - 1) + 2;
        std::cout << "#" << i << " : " << iarray[i] << " - " <<  divisorsCount(iarray[i]) << " divisor(s)" << std::endl;
    }
    std::sort(iarray, iarray + arr_size, [](int a, int b) { return divisorsCount(a) < divisorsCount(b); });
    std::cout << "Sorted array:" << std::endl;
    std::copy(iarray, iarray + arr_size, std::ostream_iterator<int>(std::cout, "\n"));
    delete[] iarray;
    return 0;
}
bol2909
 Аватар для bol2909
2 / 2 / 1
Регистрация: 29.08.2010
Сообщений: 51
04.09.2010, 18:40     Вывести на экран элементы массива целых чисел в порядке возрастания их числа делителей #5
Цитата Сообщение от Nameless One Посмотреть сообщение
Не по теме:
bol2909, спасибо, я тронут . Однако в linux проблем с кодировкой консоли не существует
Сам нашел чисто случайно =)
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
04.09.2010, 18:47     Вывести на экран элементы массива целых чисел в порядке возрастания их числа делителей #6
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
#include <iostream>
#include <string>
 
int main(int argc, char* argv[])
{
    if(argc != 2)
    {
        std::cerr << "Usage: " << argv[0] << " STRING" << std::endl;
        return 1;
    }
    const std::string abc("abc");
    std::string str(argv[1]);
    size_t index = 0;
    size_t count = 0;
    while((index = str.find(abc, index)) != std::string::npos)
    {
        ++count;
        index += abc.size();
    };
    std::cout << "\'" << abc << "\'" << " occurs in \'" << str 
        << "\' " << count << " time(s)" << std::endl;
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.09.2010, 23:20     Вывести на экран элементы массива целых чисел в порядке возрастания их числа делителей
Еще ссылки по теме:

Вывести все четные числа массива в порядке возрастания их индексов, а затем все нечетные в порядке убывания C++
C++ Вывести на экран числа из строки в порядке возрастания
C++ Файл целых положительных чисел. Сначала располагаются числа, которые делятся на 3 в порядке возрастания, потом

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

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
06.09.2010, 23:20     Вывести на экран элементы массива целых чисел в порядке возрастания их числа делителей #7
Цитата Сообщение от leks Посмотреть сообщение
подсчитать число вхождений в строку группы символов abc
на С для разнообразия
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
    
#define FIND "abc"
 
int main(void){
    char buf[BUFSIZ], * p;
    int cnt;
    
    printf("String: ");
    if ( ! fgets(buf, BUFSIZ, stdin) )
        exit(1);
    for ( cnt = 0, p = strstr(buf, FIND); p != NULL; ++cnt, p = strstr(p + 1, FIND) )
        ;
    printf("Substring \"%s\" meet %d times.\n", FIND, cnt);
    
    exit(0);
}
Yandex
Объявления
06.09.2010, 23:20     Вывести на экран элементы массива целых чисел в порядке возрастания их числа делителей
Ответ Создать тему
Опции темы

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