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

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

Войти
Регистрация
Восстановить пароль
 
Praud
7 / 7 / 3
Регистрация: 25.02.2013
Сообщений: 237
#1

Ввести строку, из нее удалить всё, кроме нечетных чисел. Отсортировать оставшиеся числа по убыванию - C++

02.05.2014, 15:09. Просмотров 347. Ответов 6
Метки нет (Все метки)

Суть такова: пользователь вводит строку, из нее удаляется всё, кроме нечетных чисел. Далее они сортируются по убыванию. Подскажите как сделать. Сортировку пузырьком думаю сам напишу, а вот первое...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2014, 15:09     Ввести строку, из нее удалить всё, кроме нечетных чисел. Отсортировать оставшиеся числа по убыванию
Посмотрите здесь:

Упорядочить строку с наименьшим количеством нечетных чисел по убыванию - C++
Упорядочить строку с наименьшим количеством нечетных чисел по убыванию.

Найти строку матрицы, в которой наибольшее количество разных чисел, и отсортировать её по убыванию - C++
В двумерном массиве найти строку в которой наибольшее количество разных чисел и отсортировать её за спаданием.

Удалить из массива число, у которого наибольшая сумма цифр и отсортировать оставшиеся элементы - C++
Задан массив целых чисел х. Удалить из него число,у которого наибольшая сумма цифр. Поменять местами 2 наибольших элемента в массиве....

Элементы массива с нечетных позиций необходимо отсортировать по возрастанию, с четных - по убыванию - C++
Значит есть одномерный массив из 10 чисел. Заполнен случайными значениями. Числа расположенные на нечетных позициях необходимо...

Ввести рандомно матрицу и отсортировать главную диагональ матрицы по убыванию - C++
ввести рандомно матрицу и отсортировать главную диагональ матрицы по убыванию и вывести эту отсортированную матрицу

Ввод чисел через пробел до определеного числа,убрать оставшиеся числа - C++
Нужно ввести числа через проблем, набор заканчиваеться числом меньше или равно нулю. Пример: 1 2 3 -1 5 6 7 (занести нужно будет...

Дан текстовый файл.текст. числа, разделённые пробелами. Найти количество положительных чисел. Удалить строку с min количеством чисел (на С) - C++
Дан текстовый файл, состоящий из одной или нескольких строк. Каждая строка файла содержит числа, разделенные пробелами. Найти количество...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Керра
1276 / 444 / 45
Регистрация: 24.08.2011
Сообщений: 2,133
02.05.2014, 15:15     Ввести строку, из нее удалить всё, кроме нечетных чисел. Отсортировать оставшиеся числа по убыванию #2
C помощью strtok можно
Praud
7 / 7 / 3
Регистрация: 25.02.2013
Сообщений: 237
02.05.2014, 16:02  [ТС]     Ввести строку, из нее удалить всё, кроме нечетных чисел. Отсортировать оставшиеся числа по убыванию #3
у меня тип string. Сам strtok не смогу написать

Добавлено через 39 минут
Немного извратился, первыми символами вынес цифры, остальное заменил ' '. Думаю, мне такое подходит.
Только теперь я не знаю как их сортировать по убыванию. Тип данных то string, причем не STL, а мой (по заданию). stoi() применить не могу, как быть?
Керра
1276 / 444 / 45
Регистрация: 24.08.2011
Сообщений: 2,133
02.05.2014, 16:57     Ввести строку, из нее удалить всё, кроме нечетных чисел. Отсортировать оставшиеся числа по убыванию #4
тебе же надо не цифры, а числа сортировать, значит цифры в начало нельзя?

Добавлено через 5 минут
можно удалить все кроме чисел.
C++
1
2
3
4
5
6
7
8
9
i = 0, newДлина = 0;
while (i < длины строки)
{
  while (i < длины строки && строка[i] не цифра)
    i++;
  while (i < длины строки && строка[i] цифра)
    // располагаем число на позиции newN...сколько понадобится. также запоминаем длину числа, меняем 
    // newДлину
}
что-то такое.
zitxbit
Master C/C++
87 / 739 / 75
Регистрация: 11.04.2012
Сообщений: 971
02.05.2014, 20:20     Ввести строку, из нее удалить всё, кроме нечетных чисел. Отсортировать оставшиеся числа по убыванию #5
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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
 
int main(int argc, char* argv[])
{
    static char str[256] = "to 111 be or 222 not to 144 be\0";
 
    printf("string = %s\n", str);
 
    for (int i = 0; str[i] != '\0'; i++)
    {
        char digits[256] = "\0"; int r = i, n = 0;
        while (isdigit(str[i]) && str[i] != '\0')
            digits[n++] = str[i++];
 
        digits[n] = '\0';
        if (strcmp("\0", digits) < 0 && !(atoi(digits) % 2))
        {
            int len = strlen(digits) + 1;
            while (--len >= 0)
            {
                for (int t = r; str[t] != '\0'; t++)
                    str[t] = str[t + 1];
            }
        }
 
    }
 
    printf("output = %s\n", str);
 
    _getch();
 
    return 0;
}
http://codepad.org/MEeA9tSJ
Миниатюры
Ввести строку, из нее удалить всё, кроме нечетных чисел. Отсортировать оставшиеся числа по убыванию  
MrGluck
Модератор
Эксперт CЭксперт С++
6984 / 4155 / 592
Регистрация: 29.11.2010
Сообщений: 11,021
02.05.2014, 21:51     Ввести строку, из нее удалить всё, кроме нечетных чисел. Отсортировать оставшиеся числа по убыванию #6
Цитата Сообщение от Praud Посмотреть сообщение
Суть такова: пользователь вводит строку, из нее удаляется всё, кроме нечетных чисел.
Числа могут идти совместно с текстом или обязательно должны быть обрамлены пробелами?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <cstdlib>
#include <iostream>
#include <set>
#include <sstream>
#include <string>
 
int main()
{
    std::string str, word;
    std::getline(std::cin, str);
    std::set<int> s;
    std::istringstream ist(str);
    while (ist >> word)
    {
        int n = strtol(word.c_str(), NULL, 10);
        if (n % 2)
            s.insert(n);
    }
    for (auto rit = s.rbegin(); rit != s.rend(); ++rit)
        std::cout << *rit << ' ';
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.05.2014, 09:38     Ввести строку, из нее удалить всё, кроме нечетных чисел. Отсортировать оставшиеся числа по убыванию
Еще ссылки по теме:

Отсортировать по убыванию последнюю строку квадратной матрицы (сортировка Шелла) - C++
Здравствуйте Передомной постала такая задача: надо вывести и отсортировать по убыванию последнюю строку квадратной матрицы. Я начал...

Отсортировать каждую строку матрицы по убыванию элементов методом пузырька - C++
I. Дана матрица размерностью nxn, содержащая целые числа. Отсортировать: 1. каждую строку матрицы по убыванию элементов методом пузырька ...

Отсортировать по возрастанию и по убыванию введенные числа - C++
Здраствуйте. Пользователь вводит 10 чисел, отсортировать ихпо возростанию и по убыванию

Отсортировать введенные числа по возрастанию и по убыванию - C++
Здраствуйте. Задание Пользователь вводит 10 чисел, отсортировать и вывести на экран по возрастанию и по убыванию Спасибо.

Отсортировать первые 10 чисел массива по убыванию - C++
Заполнить массив из 20 элементов целыми числами от 1 до 20. Отсортировать первые 10 чисел по убыванию.


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

Или воспользуйтесь поиском по форуму:
HeilMan
Сообщений: n/a
03.05.2014, 09:38     Ввести строку, из нее удалить всё, кроме нечетных чисел. Отсортировать оставшиеся числа по убыванию #7
Классно!
Yandex
Объявления
03.05.2014, 09:38     Ввести строку, из нее удалить всё, кроме нечетных чисел. Отсортировать оставшиеся числа по убыванию
Ответ Создать тему
Опции темы

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