Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
Nicolashka
0 / 0 / 0
Регистрация: 30.10.2017
Сообщений: 6
1

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

31.10.2017, 16:32. Просмотров 1785. Ответов 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
#include "stdafx.h"
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include <algorithm>
 
inline void print(std::string i) { std::cout << i << " "; }
 
int main()
{
    std::string str = "5 4 6 8 9 1 2 3 7";
    std::string buf;
    std::stringstream ss(str);
    std::vector< std::string > tokens;
 
    while (ss >> buf)
        tokens.push_back(buf);
 
    sort(tokens.begin(), tokens.end());
    for_each(tokens.begin(), tokens.end(), print);
    std::cout << std::endl;
 
    system("PAUSE");
    return 0;
}
Но я не знаком с векторами и мне нужно что-нибудь попроще.
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2017, 16:32
Ответы с готовыми решениями:

Дана строка символов, состоящая из цифр, разделенных пробелами. Вывести на экран числа этой строки в порядке возрастан
При вводе чисел к примеру 5 3 2 1 , выдает непонятные цифры 3251325032490...

Дана строка символов что складаютья из цифр разделенных пробелами. Вывести на экран числа этой строки в порядке возрастания их значений
Дана строка символов что складаютья из цифр разделенных пробелами. Вывести на экран числа этой...

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

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

Дана строка символов, состоящая из цифр, разделенных пробелами. Вывести четные числа этой строки- не работает
#include &lt;vcl.h&gt; #pragma hdrstop #include &lt;conio.h&gt; #include &lt;iostream.h&gt; #include &lt;string.h&gt; ...

3
Геомеханик
809 / 612 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
31.10.2017, 16:57 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
 
int main(void){
    std::string s = "5 4 6 8 9 1 2 3 7";
 
    const int N = 10;
    unsigned cs[N] = {0};
    for(std::string::const_iterator p = s.begin(); p != s.end(); ++p){
        if(*p >= '0' && *p <= '9')
            ++cs[*p - '0'];
    }
 
    for(int i = 0; i < N; ++i){
        for(unsigned d = 0; d < cs[i]; ++d)
            std::cout << char(i + '0') << ' ';
    }
    std::cin.get();
    return 0;
}
1
Nicolashka
0 / 0 / 0
Регистрация: 30.10.2017
Сообщений: 6
31.10.2017, 18:27  [ТС] 3
Хорошо, но как добавить ввод чисел с клавиатуры?

Добавлено через 1 час 24 минуты
C++
1
2
3
4
std:cin >> s;
 
    
}
Не получается
0
LVV
132 / 119 / 40
Регистрация: 15.02.2010
Сообщений: 576
31.10.2017, 18:47 4
Лучший ответ Сообщение было отмечено Nicolashka как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
using namespace std;
int main ()
{
    string s;
    getline(cin,s);//читаем строку с пробелами
    int l = s.length();//длина строки с пробелами
    
    //сортируем строку, игнорируя пробелы
    for (int i = 0; i < l; i += 2)
        for (int j = i + 2; j < l; j += 2)
            if (s[i] < s[j])
                swap(s[i], s[j]);//обмен значениями
 
    cout << s << endl;
    system("pause");
return 0;
}
Работает при условии корректного ввода данных, согласно условию задачи: "...цифры, разделённые пробелом..."
1
31.10.2017, 18:47
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2017, 18:47

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

Дана строка, состоящая из слов, разделенных пробелами, в конце строки - точка
Дана строка, состоящая из слов, разделенных пробелами, в конце строки - точка. Определить, сколько...

Дана строка символов, состоящая из цифр и пробелов. Вывести на экран слово с максимальной длиной
Помогите, выдает ошибку в проверке условия цикла #include &lt;conio.h&gt; #include &lt;stdio.h&gt;...


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

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

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