допустим есть
char a[]={Roman, Andrei, Alex, Tom, Shasha, Irina}
Надо вывести их по алфавиту
Как это сделать?
Другие языки программирования и технологии
Сортировка по алфавиту в С/С++
Не допущу! !
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SIZE 6
#define BUFFER 7
int main() {
char a[SIZE][BUFFER] = { "Roman", "Andrei", "Alex", "Tom", "Shasha", "Irina" };
int i;
qsort(a, SIZE, BUFFER, (int(*)(const void*, const void*))strcmp);
for (i = 0; i < SIZE; ++i) printf("%s\n", a[i]);
getchar();
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SIZE 6
#define BUFFER 7
int main() {
char a[SIZE][BUFFER] = { "Roman", "Andrei", "Alex", "Tom", "Shasha", "Irina" };
int i;
qsort(a, SIZE, BUFFER, (int(*)(const void*, const void*))strcmp);
for (i = 0; i < SIZE; ++i) printf("%s\n", a[i]);
getchar();
return 0;
}
В вопросе у тебя, видимо, сразу ошибка в примере.
char a[]={Roman, Andrei, Alex, Tom, Shasha, Irina} откомпилируется только в том случае, если Roman и так далее - ранее определенные через enum или препроцессор имена строк. А ты, видимо, имела в виду, что это сами строки, тогда кавычек нехватает.
В любом случае - отсортировать пузырьковой сортировкой, для сравнения использовать функцию strcmp, и потом уже выводить по порядку.
char a[]={Roman, Andrei, Alex, Tom, Shasha, Irina} откомпилируется только в том случае, если Roman и так далее - ранее определенные через enum или препроцессор имена строк. А ты, видимо, имела в виду, что это сами строки, тогда кавычек нехватает.
В любом случае - отсортировать пузырьковой сортировкой, для сравнения использовать функцию strcmp, и потом уже выводить по порядку.
Это откомпилируется, только если определены соответствующие переменные типа char. Возможно, имелось в виду что-то другое (кавычки вокруг имен?) , но я буду считать, что ты нас не обманываешь и это действительно переменные типа char.
Дальнешее существенно зависит от значений переменных, компилятора, используемой кодировки и важности регистра, но в лучшем случае достаточно будет сделать
#include<algorithm>
...
std::sort(a, a + sizeof(a)/sizeof(a[0]) );
В худшем придется писать свою функцию для сравнения элементов.. . или даже свою функцию сортировки.
Дальнешее существенно зависит от значений переменных, компилятора, используемой кодировки и важности регистра, но в лучшем случае достаточно будет сделать
#include<algorithm>
...
std::sort(a, a + sizeof(a)/sizeof(a[0]) );
В худшем придется писать свою функцию для сравнения элементов.. . или даже свою функцию сортировки.
я слышал что есть библиотека в которой есть алфавиты, или даже не библиотека, а возможность использовать алфавит без его определения.
Так вот, если опустить этот вопрос и предположить, что вы определили алфавит самостоятельно в каком-нибудь массиве (вручную) , то я бы решал так:
брал первую букву слова и искал бы ее номер в алфавите, затем запоминал. Потом по номерам отсортировал бы и принялся проверять вторую букву и т. д.
Правда алгоритм очень тяжелый в плане вычислительной сложности.
Надеюсь это только для учебы.
Вопросы или здесь или в почту
Так вот, если опустить этот вопрос и предположить, что вы определили алфавит самостоятельно в каком-нибудь массиве (вручную) , то я бы решал так:
брал первую букву слова и искал бы ее номер в алфавите, затем запоминал. Потом по номерам отсортировал бы и принялся проверять вторую букву и т. д.
Правда алгоритм очень тяжелый в плане вычислительной сложности.
Надеюсь это только для учебы.
Вопросы или здесь или в почту
Никак. Это невозможно в данной программе
Похожие вопросы
- Поправить сортировку по алфавиту c++
- Сортировка Структур по Алфавиту (Язык Си)
- Изучил несколько простых алгоритмов сортировки, осталось изучить быструю и слияние, нужно ли вообще писать эти алгоритмы
- Сортировки, язык Си.
- C++ Сортировка в сортировке вектора экземпляров структуры
- Сортировка простыми вставками.
- Проблема с алгоритмом быстрой сортировкой С++
- Как написать макрос для Word 2003 чтобы выполнял сортировку чисел в квадратных скобках?
- Сортировка вставками и сортировка слиянием!
- Сортировка