Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
leks
#1

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

26.11.2007, 00:24. Просмотров 3487. Ответов 6
Метки нет (Все метки)

1 Получить все числа, которые входят в массив по одному разу

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

Вывести на экран все элементы целочисленного двумерного массива в порядке возрастания - C++
Вывести на экран все элементы целочисленного двумерного массива в порядке возрастания. #include <vcl.h> #include <conio.h> ...

4. С клавиатуры последовательно вводятся 3 целых числа. Необходимо ввести их на экран в порядке возрастания - C++
С клавиатуры последовательно вводятся 3 целых числа. Необходимо ввести их на экран в порядке возрастания.

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

Вывести на экран три введеных числа в порядке возрастания - C++
Пользователем вводится три целых числа: a1, a2, a3. Вывести эти числа на экран в порядке возрастания.

Динамические массивы. Вывести на экран числа в порядке возрастания. - C++
С клавиатуры вводятся натуральные числа, ввод заканчивается числом 0. Нужно вывести на экран эти числа в порядке возрастания.

Вывести на экран числа строки в порядке возрастания их значений - C++
Здравствуйте! И снова Я! ;) Вот у меня появилась еще одна интересная задача: "Дана строка символов, состоящая из произвольных...

6
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
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;
    }
0
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;
}
0
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
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;
}
0
bol2909
2 / 2 / 1
Регистрация: 29.08.2010
Сообщений: 51
04.09.2010, 18:40 #5
Цитата Сообщение от Nameless One Посмотреть сообщение
Не по теме:
bol2909, спасибо, я тронут . Однако в linux проблем с кодировкой консоли не существует
Сам нашел чисто случайно =)
0
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
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;
}
0
easybudda
Модератор
Эксперт CЭксперт С++
9695 / 5645 / 963
Регистрация: 25.07.2009
Сообщений: 10,849
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);
}
0
06.09.2010, 23:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.09.2010, 23:20
Привет! Вот еще темы с ответами:

Прочитать с экрана 3 числа и вывести их на экран в порядке возрастания - C++
БРАТИЯ, ПОМОГИТЕ!!! Прочитать с экрана 3 числа и вывести их на экран в порядке возрастания!! ЭТО НАДО СДЕЛАТЬ С if else!! C++ ONLY!

Вывести элементы массива в порядке возрастания их длины - C++
Дано массив А$(10) вывести на печать элементы в возрастающем порядке их длины.

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

Вывести в порядке неубывания (возрастания) отрицательные элементы массива - C++
Дан одномерный массив из N случайных действительных чисел в диапазоне от -5 до 5. Вывести в порядке неубывания (возрастания) отрицательные...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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