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

Строки C/C++ - C++

Восстановить пароль Регистрация
 
Svender
1 / 1 / 0
Регистрация: 06.05.2011
Сообщений: 12
14.01.2012, 15:13     Строки C/C++ #1
До строк пока что не дошёл, взгляните если не сложно:

Задана строка, содержащая целые числа (максимум 20 чисел). Упорядочить числа в строке по возрастанию.


У самого есть предположение, но насколько оно правильное - это другое дело.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2012, 15:13     Строки C/C++
Посмотрите здесь:

C++ Как считать строки из файла, если там больше одной строки?
C++ как первые два символа строки переставить в конец этой строки?
c++ Даны две строки: S1 и S2. Определить количество вхождений строки S2 в строку S1. C++
C++ Указать номер строки, максимально удаленной от первой строки заданной матрицы
C++ Функция перезаписывает символы строки заданным количеством символов другой строки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Serejke_qq
 Аватар для Serejke_qq
149 / 107 / 9
Регистрация: 06.07.2011
Сообщений: 224
Завершенные тесты: 2
14.01.2012, 15:39     Строки C/C++ #2
Цитата Сообщение от Svender Посмотреть сообщение
У самого есть предположение, но насколько оно правильное - это другое дело.
ну так сразу и выкладывайте, а мы поддержим ход Ваших мыслей.
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
14.01.2012, 15:49     Строки C/C++ #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <set>
#include <iterator>
#include <sstream>
#include <algorithm>
#include <string>
 
int main()
{
    std::string s("55  342 -9 12 34 341 101 0 7  34 -12  0");
    std::stringstream ss(s);
    std::multiset<int> set((std::istream_iterator<int>(ss)), std::istream_iterator<int>());
    ss.clear();
    ss.str("");
    std::copy(set.begin(), set.end(), std::ostream_iterator<int>(ss, " "));
    s.assign(ss.str());
    std::cout << s << std::endl;
    return 0;
}
BRcr
 Аватар для BRcr
4003 / 2292 / 155
Регистрация: 03.02.2011
Сообщений: 5,064
Записей в блоге: 10
14.01.2012, 15:51     Строки C/C++ #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    int i, j;
    char tmp, str[20] = "365298745236";
 
    for ( i = 1; str[i] != '\0' && i < 20; ++i ) // цикл проходов, i - номер прохода
    {
        tmp = str[i];
        for ( j = i - 1; j >= 0 && str[j] > tmp ; --j) { // поиск места элемента в готовой последовательности
            str[j + 1] = str[j];
        }               // сдвигаем элемент направо, пока не дошли
        str[j + 1] = tmp; // место найдено, вставить элемент
    }
    printf("%s\n", str);
    system("pause");
    return 0;
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16824 / 5245 / 319
Регистрация: 30.03.2009
Сообщений: 14,121
Записей в блоге: 26
14.01.2012, 16:34     Строки C/C++ #5
BRcr, по ходу дела ты не различаешь понятия "цифра" и "число"
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
14.01.2012, 16:48     Строки C/C++ #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
#include <stdio.h>
#include <stdlib.h>
 
int Compare(const void* a, const void* b)
{
    return *(long*)a - *(long*)b;
}
 
int main ()
{
    char* s = " 55  342 -9 12 34 341 101 0 7  34 -12  0", s1[256] = {0};
    long arr[20], i, j, k;
    for(i = 0; *s; ++i)
    {
        arr[i] = strtol(s, &s, 10);
    }
    qsort(arr, i, sizeof(*arr), Compare);
    for(j = 0, k = 0; k < i; ++k)
    {
        j += sprintf(s1 + j, "%d ", arr[k]);
    }
    puts(s1);
    return(0);
}
Yandex
Объявления
14.01.2012, 16:48     Строки C/C++
Ответ Создать тему
Опции темы

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