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

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

Войти
Регистрация
Восстановить пароль
 
den790
0 / 0 / 0
Регистрация: 21.02.2010
Сообщений: 40
#1

Упорядочить целые числа в строке по возрастанию. - C++

12.12.2010, 18:10. Просмотров 1309. Ответов 5
Метки нет (Все метки)

Помогите пожалуйста с задачей на СИ: Задана строка, содержащая целые числа (максимум 15 чисел). Упорядочить числа в строке по возрастанию. При реализации программы необходимо использовать функции для обработки строк.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2010, 18:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Упорядочить целые числа в строке по возрастанию. (C++):

Задана строка, содержащая целые числа (максимум 15 чисел). Упорядочить целые числа в строке по убыванию. - C++
Задана строка, содержащая целые числа (максимум 15 чисел). Упорядочить целые числа в строке по убыванию. должно выглядеть что то...

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

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

Выделить из строки числа (только целые) и поместить их в массив по возрастанию - C++
#include <iostream> #include <string.h> using namespace std; void find_integers_in_string(char* strok, char* arry, int& n) //...

Упорядочить строки матрицы по возрастанию количества одинаковых элементов в каждой строке - C++
Помогите пожалуйста... Послезавтра экзамен, надо лабы сдать, а я не успеваю=((( ПОМОГИТЕЕЕЕЕЕ=( Вот он: Вариант 16 Упорядочить...

Упорядочить строки матрицы по возрастанию количества заданных символов в каждой строке - C++
Помогите решить лабу *Дана символьная прямоугольная матрица. Упорядочить строки матрицы по возрастанию количества заданных символов в...

5
Просто Это Я
7 / 7 / 0
Регистрация: 12.12.2010
Сообщений: 14
12.12.2010, 18:20 #2
если с функциями, то можно, перевести строку в число типа long. (если что,можно сначала разбить её на несколько строк). Затем из этого числа можно выделять и сравнивать цифры, строить их по порядку в виде другого числа. А его потом перевести в строку. как-то так... (не факт, что это самый лучший вариант)
1
den790
0 / 0 / 0
Регистрация: 21.02.2010
Сообщений: 40
12.12.2010, 18:32  [ТС] #3
Просто Это Я, как-то сложновато получается. помогите с реализацией
0
Просто Это Я
7 / 7 / 0
Регистрация: 12.12.2010
Сообщений: 14
12.12.2010, 18:41 #4
реализуем это с помощью следующей ф-и:
long atol (const char *str) - преобразует троку str в целое число типа long (честно говоря, сама с ней пока не работала - так что придётся экспериментировать))
далее полученное число в цикле делим , скажем, на 10) и остаток от деления заносим в массив.
Далее массив сортируем по возрастанию. Потом этот массиб преобразуем в число.
Ну, и собственно, последнее - переводим число обратно с троку : char *ltoa(long value, char *str, int radix) - преобразует длинно целое число value в строку Str.
Напоминаю, что не уверена в эффективности данных методов)
1
den790
0 / 0 / 0
Регистрация: 21.02.2010
Сообщений: 40
12.12.2010, 19:52  [ТС] #5
помогите, не получается что-то
0
easybudda
Модератор
Эксперт CЭксперт С++
9681 / 5631 / 954
Регистрация: 25.07.2009
Сообщений: 10,808
12.12.2010, 20:48 #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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
 
int split_n(const char * str, int * arr, int size, const char * delim){
    char * buf, * p, * tail;
    int cnt;
    long val;
    
    if ( ( buf = strdup(str) ) == NULL ){
        perror("strdup");
        return -1;
    }
    for ( cnt = 0, p = strtok(buf, delim); p && cnt < size; ++cnt, p = strtok(NULL, delim) ){
        errno = 0;
        val = strtol(p, &tail, 10);
        if ( errno || *tail ){
            free(buf);
            return -1;
        }
        arr[cnt] = (int)val;
    }
    
    free(buf);
    return cnt;
}
 
int asc_cmp(const void * a, const void * b){
    return *(int*)a - *(int*)b;
}
 
#define MAX_NUMBERS 15
#define DELIM " \t\n"
 
int main(void){
    int arr[MAX_NUMBERS], cnt, i;
    char buf[BUFSIZ];
    
    while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' ){
        if ( ( cnt = split_n(buf, arr, MAX_NUMBERS, DELIM) ) < 1 ){
            fprintf(stderr, "Error while parsing string!\n");
            exit(1);
        }
        qsort(arr, cnt, sizeof(int), asc_cmp);
        printf("Sorted: ");
        for ( i = 0; i < cnt; ++i )
            printf("%d ", arr[i]);
        printf("\n");
    }
    
    exit(0);
}
2
12.12.2010, 20:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2010, 20:48
Привет! Вот еще темы с ответами:

Упорядочить строки матрицы по возрастанию количества различных элементов в каждой строке - C++
Дана целочисленная прямоугольная матрица. Упорядочить строки матрицы по возрастанию количества различных элементов в каждой строке.

Упорядочить строки матрицы по возрастанию количества положительных элементов в одной строке - C++
Дана целочисленная матрица n*m, n,m&lt;=10.Упорядочить(переставить) строки матрицы по возрастанию количества положительных элементов в одной...

Если целые числа упорядочены по возрастанию (a<b<c<d) сменить порядок их следования на противоположный - C++
Если целые числа упорядочены по возрастанию (a&lt;b&lt;c&lt;d) сменить порядок их следования на противоположный

Занести в бинарный файл h из текстового файла t целые числа, упорядоченные по возрастанию - C++
Не получается..(((киньте идеи.. В текстовом файле t записаны целые числа, упорядоченные по убыванию. Занести в бинарный файл h из...


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

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

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