Эта тема связана с темой:
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 |
//clang Пузырьковая сортировка массива строк Листинг #1 #include <iostream> #include <string.h> #include <windows.h> using namespace std; int main(){ /*ЗАДАНИЕ ДАННЫХ ДЛЯ ПОСТРОЕНИЯ МАССИВА СТРОК*/ const int COUNT_OF_STRINGS = 5; //Число строк const int MAX_STRING_LEN = 256; //Длина строк char S[COUNT_OF_STRINGS][MAX_STRING_LEN] = {}; //Двумерный массив строк /*КОНЕЦ ЗАДАНИЯ ДАННЫХ ДЛЯ ПОСТРОЕНИЯ*/ char temp[MAX_STRING_LEN] = {}; //Буфер для хранения строки, при обмене значениями ячейками строк /*ВВОДИМ СТРОКИ*/ cout << "input " << COUNT_OF_STRINGS << " strings" << '\n'; for (int i=0; i<COUNT_OF_STRINGS; i++){ cin.getline(S[i], MAX_STRING_LEN); //Чтение строки с клавиатуры и //сохранение её в массив } /*КОНЕЦ ВВОДА СТРОК*/ /*ПУЗЫРЬКОВАЯ СОРТИРОВКА МАССИВА СТРОК*/ for (int i = 1; i<COUNT_OF_STRINGS; i++){ for (int j = 0; j<COUNT_OF_STRINGS-1; j++){ if (strcmp(S[i],S[j]) > 0){ //Для сравнения строк задействована специальная функция //обмен ячеек значениями strcpy(temp,S[i]); strcpy(S[i],S[j]); strcpy(S[j],temp); //КОнец обмена //Обмен можно написать в одну строчку: swap(S[i],S[j]); } } } /*КОНЕЦ СОРТИРОВКИ*/ /*ВЫВОД СТРОК НА ЭКРАН*/ for (int i=0; i<COUNT_OF_STRINGS; i++){ cout << S[i] << '\n'; } /*КОНЕЦ ВЫВОДА СТРОК*/ cin.get(); } |
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 54 55 56 57 58 59 60 61 62 63 64 |
//clang Пузырьковая сортировка массива символьных строк Листинг #2 #include <iostream> #include <сstring> using namespace std; int main(){ /*ЗАДАНИЕ ДАННЫХ ДЛЯ ПОСТРОЕНИЯ МАССИВА СТРОК*/ int COUNT_OF_STRINGS = 0; //Число строк (будет задаваться при работе программы) const int MAX_STRING_LEN = 256; //Длина строк char *S[MAX_STRING_LEN] = {}; //Двумерный массив строк /*КОНЕЦ ЗАДАНИЯ ДАННЫХ ДЛЯ ПОСТРОЕНИЯ*/ char temp[MAX_STRING_LEN] = {}; //Буфер для хранения строки, при обмене значениями ячейками строк cout << "input count for string: "; //Диалог: сколько строк массив буде хранить (cin >> COUNT_OF_STRINGS).ignore(); //Вводим количество (при работе программы) /*ВЫДЕЛЯЕМ ПАМЯТЬ ДЛЯ КАЖДОЙ СТРОКИ*/ for (int i=0; i<COUNT_OF_STRINGS; i++){ S[i] = new char[MAX_STRING_LEN]; } /*КОНЕЦ ВЫДЕЛЕНИЯ ПАМЯТИ*/ /*ВВОДИМ СТРОКИ*/ cout << "input " << COUNT_OF_STRINGS << " strings" << '\n'; for (int i=0; i<COUNT_OF_STRINGS; i++){ cin.getline(S[i], MAX_STRING_LEN); //Чтение строки с клавиатуры и //сохранение её в массив } /*КОНЕЦ ВВОДА СТРОК*/ /*ПУЗЫРЬКОВАЯ СОРТИРОВКА МАССИВА СТРОК*/ for (int i = 1; i<COUNT_OF_STRINGS; i++){ for (int j = 0; j<COUNT_OF_STRINGS-1; j++){ if (strcmp(S[i],S[j]) > 0){ //Функция сравнения двух строк //обмен ячеек значениями strcpy(temp,S[i]); strcpy(S[i],S[j]); strcpy(S[j],temp); //КОнец обмена //Обмен можно написать в одну строчку: swap(S[i],S[j]); } } } /*КОНЕЦ СОРТИРОВКИ*/ cout << '\n'; /*ВЫВОД СТРОК НА ЭКРАН*/ for (int i=0; i<COUNT_OF_STRINGS; i++){ cout << S[i] << '\n'; } /*КОНЕЦ ВЫВОДА СТРОК*/ /*СТРОКИ БОЛЬШЕ НЕ НУЖНЫ, ЧИСТИМ ПАМЯТЬ*/ for (int i=0; i<MAX_STRING_LEN; i++){ delete []S[i]; } /*КОНЕЦ ОЧИСТКИ ПАМЯТИ*/ cin.get(); } |
Борланд ругается на 79 и 84 строчки:
Temporary used for parameter ‘A’ in call to ‘funcprint(const double * * &, const int, const int)’
исправил ошибку
Не работает!
Вы правы. совсем не то. исправлю в ближайшее время.
переписал