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

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

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

сортировка - C++

28.12.2010, 17:04. Просмотров 319. Ответов 5
Метки нет (Все метки)

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

Сортировка Шелла. Написал программу, не могу понять, почему сортировка не выполняется - C++
Программа создает динамический массив с рандомным заполнением. Дальше выбор сортировок, пузырьком или сортировка Шелла. Вот она то и не...

Сортировка слиянием. В каком куске кода происходит сортировка и каким именно образом? - C++
Помогите, пожалуйста, разобраться. Подскажите в каком куске кода происходит сортировка и каким именно образом? #include <iostream> ...

Быстрая сортировка(сортировка Хоара). Отсортировать фрагмент массива - C++
Мне нужно отсортировать фрагмент массива, расположенный между первым и последним отрицательным элементом. Немогу понять как устоновить...

Быстрая сортировка (сортировка Хоара) для связных списков - C++
есть у кого готовый алгоритм? или подскажите как реализовать

Сортировка Шелла и пирамидальная сортировка для символов - C++
Здраствуйте, можете пожалуйста привести пример сортировок шелла и пиромидальной сортировки для символов, а то ничего не могу ...

Быстрая сортировка (сортировка методом Хоара) - C++
Ввести массив x1,x2,...,x20 в диапазоне . Требуется расположить отрицательные элементы в порядке убывания. Вывести массивы до и после...

5
M@ker
-73 / 19 / 1
Регистрация: 17.12.2010
Сообщений: 355
28.12.2010, 17:10 #2
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <conio.h>

char * str_to_upper(char * str){
char * s;
for ( s = str; *s; ++s )
*s = toupper(*s);
return str;
}

int asc_cmp(const void * a, const void * b){
return strcmp(*(char**)a, *(char**)b);
}

#define DELIM " \t\n"

int main(void){
char buf[BUFSIZ], *p, ** words;
int i, cnt, len;

printf("String: ");
scanf("%[^\n]", buf);
printf("Length: ");
scanf("%d", &len);

words = NULL;
cnt = 0;
for ( p = strtok(buf, DELIM); p; p = strtok(NULL, DELIM) ){
if ( strlen(p) == len ){
if ( ( words = (char**)realloc(words, sizeof(char*) * (cnt + 1)) ) == NULL ){
perror("realloc");
exit(1);
}
if ( ( words[cnt] = strdup(p) ) == NULL ){
perror("strdup");
exit(1);
}
str_to_upper(words[cnt]);
++cnt;
}
}
if ( ! words || ! cnt ){
fprintf(stderr, "No needed words found!\n");
exit(1);
}
qsort(words, cnt, sizeof(char*), asc_cmp);
printf("Result: ");
for ( i = 0; i < cnt; ++i )
printf("%s ", words[i]);
printf("\n");

for ( i = 0; i < cnt; ++i )
free(words[i]);
free(words);
getch();
return 0;
}
0
besbyblik
1 / 1 / 0
Регистрация: 25.12.2010
Сообщений: 77
28.12.2010, 17:13  [ТС] #3
на си можно?
0
M@ker
-73 / 19 / 1
Регистрация: 17.12.2010
Сообщений: 355
28.12.2010, 17:17 #4
Цитата Сообщение от besbyblik Посмотреть сообщение
на си можно?
Перепиши сам
1
romedal
54 / 54 / 1
Регистрация: 18.03.2010
Сообщений: 345
Записей в блоге: 1
29.12.2010, 00:47 #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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <cstdlib>
#include <cctype>
using namespace std;
int compare (const void* a, const void* b);
int main () {
 
    char a[100];
    cin>>a;
    //cout<<endl<<a[2]<<endl;
    qsort(a,strlen(a),sizeof(char),compare);
    for (int i =0; i<strlen(a); i++){
    if( isalpha(a[i]))
    cout<<a[i];
    }
_getch();
return 0;
}
 
int compare (const void* a, const void* b) {
char *af = (char*)a;
char *bf = (char*)b;
if((*af)<(*bf)) return -1; 
if((*af)==(*bf)) return 0;
if((*af)>(*bf)) return  1;
}
Добавлено через 2 часа 50 минут
А вот на С:
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
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
using namespace std; //Эта строка необязательна
int compare (const void* a, const void* b);
int main () {
 
        char a[100];
        scanf("%s",a);
        qsort(a,strlen(a),sizeof(char),compare);
        for (int i = 0; i<strlen(a); i++){
        if( isalpha(a[i]))
        printf("%c",a[i]);
        }
_getch();
return 0;
}
 
int compare (const void* a, const void* b) {
char *af = (char*)a;
char *bf = (char*)b;
if((*af)<(*bf)) return -1; 
if((*af)==(*bf)) return 0;
if((*af)>(*bf)) return  1;
}
1
asics
Freelance
Эксперт С++
2850 / 1785 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
29.12.2010, 00:58 #6
Цитата Сообщение от romedal Посмотреть сообщение
C
1
using namespace std; //Эта строка необязательна
Всмысле не обязательная ?В Си нет пространства имен.
0
29.12.2010, 00:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2010, 00:58
Привет! Вот еще темы с ответами:

C/C++ FAQ :: Быстрая сортировка (сортировка Хоара) - C++
Вопрос, скорее академический, по мотивам реализации. Вот в faq приведена реализация этого метода сортировки на C++. В коде есть следующий...

Сортировка вектора по полю(Сортировка вставками) - C++
Здравствуйте! Нужно написать сортировку вектора по полю weight класса tomato. Вот класс: #pragma once #include &lt;iostream&gt; ...

2 сортировки: пирамидальная сортировка и сортировка слиянием - C++
Реализовать два улучшенных алгоритма сортировки. Для каждого алгоритма вычислить показатель качества сортировки (количество операций, т.е....

Сортировка расчёской и быстрая сортировка - C++
В файле in.txt записана последовательность целых чисел. Заданными методами отсортировать числа и записать в файлы out1.txt и out2.txt....


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

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

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