Гость
Map
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как сделать рабочую сортировку по алфавиту? / 25 сообщений из 26, страница 1 из 2
13.04.2021, 00:02
    #40061865
Knicks12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать рабочую сортировку по алфавиту?
Сортировка товара работает неправильно. Должно быть по алфавиту.
Вот код:

Код: plaintext
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.
65.
#include <iostream>

#include <string.h>

struct PRICE {
  char tov[80];
  int cost;
  char mag[80];
};
int main() {
  setlocale(LC_ALL, "Russian");
  int n;
  std::cout << "Введите количество структур\n";
  std::cin >> n; //Количество структур
  PRICE * arr = new PRICE[n]; //динамическое выделение памяти под массив структур
  std::cin.ignore(); //Когда мы смешиваем ввод строковых данных и чисел, то в число
  может попадать символ переноса строки.
  //Когда мы жмём клавишу Enter, ведь в память попадает символ, вот именно этот
  символ мы игнорируем принудительно.
  for(int i = 0; i < n; i++) //Ввод данных
  {
    std::cout << "Enter product name\n";
    std::cin.getline(arr[i].tov, 80);
    std::cout << "Enter your store name\n";
    std::cin.getline(arr[i].mag, 80);
    std::cout << "Enter price\n";
    std::cin >> arr[i].cost;
    std::cin.ignore();
  }
  char key;
  for (key = 'A'; key <= 'Z'; key++) //сортировка по алфавиту
  {
    for (int i = 0; i < n; i++) {
      if (arr[i].tov[0] == key) //вывод данных
      {
        std::cout <<
          "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
        std::cout << arr[i].tov << std::endl;
        std::cout << arr[i].mag << std::endl;
        std::cout << arr[i].cost << " Rub in " << std::endl;
      }
    }
  }
  int b = 0;
  std::string v;
  bool g = false;
  while (b == 0) {
    std::cout << "Enter product name: ";
    std::cin >> v;
    for (int i = 0; i < n; i++) {
      if (v == arr[i].tov) {
        std::cout << arr[i].tov << std::endl;
        std::cout << arr[i].mag << std::endl;
        std::cout << arr[i].cost << std::endl;
        g = true;
      }
    }
    if (g == false) {
      std::cout << "There is no such item" << std::endl;
    }
    std::cout << "Continue work? 0 - Yes 1 - No" << std::endl;
    std::cin >> b;
  }
  return 0;
}



Модератор: Пользуйся тегом SRC и отступами
...
Рейтинг: 0 / 0
13.04.2021, 00:25
    #40061869
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать рабочую сортировку по алфавиту?
Knicks12Должно быть по алфавиту.

Она и есть по алфавиту. Ты просто забыл добавить в это алфавит русские буквы.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
13.04.2021, 10:50
    #40061951
Knicks12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать рабочую сортировку по алфавиту?
Dimitry Sibiryakov, то-есть вместо A и Z, поставить А и Я?
...
Рейтинг: 0 / 0
13.04.2021, 11:02
    #40061955
Как сделать рабочую сортировку по алфавиту?
зачем в C++ юзать
Knicks12
char tov[80];

когда есть string?
...
Рейтинг: 0 / 0
13.04.2021, 11:22
    #40061961
xerxf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать рабочую сортировку по алфавиту?
Knicks12,

ну, строго говоря - сортировки тут нет вообще. Есть вывод в определённом порядке.
А вообще - ну найдите вы у себя в группе кого нибудь, кто хоть что то соображает в плюсах, купите ему чего нибудь, да пусть напишет вам эти контрольные. что вы гуглите не пойми чего и даже не понимаете, чего нагуглили?
...
Рейтинг: 0 / 0
13.04.2021, 11:25
    #40061962
xerxf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать рабочую сортировку по алфавиту?
кстати - а мне одному кажется, что это троллинг? настоящий студент то чей подробности бы выспрашивал, что да как делать...
...
Рейтинг: 0 / 0
13.04.2021, 12:15
    #40061979
Как сделать рабочую сортировку по алфавиту?
настоящих студентов ещё поискать
многим это программирование нах не сдалось, им бы армию прогулять и всё
...
Рейтинг: 0 / 0
13.04.2021, 12:21
    #40061985
xerxf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать рабочую сортировку по алфавиту?
ну вот автор видимо из таких. но в его случае проще сразу спрашивать за деньги
...
Рейтинг: 0 / 0
13.04.2021, 12:30
    #40061990
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать рабочую сортировку по алфавиту?
xerxfстрого говоря - сортировки тут нет вообще. Есть вывод в определённом порядке.

А "вывод в определённом порядке" отличается от "сортировки" чем?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
13.04.2021, 12:37
    #40061993
xerxf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать рабочую сортировку по алфавиту?
Dimitry Sibiryakov

xerxfстрого говоря - сортировки тут нет вообще. Есть вывод в определённом порядке.

А "вывод в определённом порядке" отличается от "сортировки" чем?

после отработки цикла в каком порядке данные будут располагаться в памяти?
...
Рейтинг: 0 / 0
13.04.2021, 12:45
    #40061998
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать рабочую сортировку по алфавиту?
xerxfпосле отработки цикла в каком порядке данные будут располагаться в памяти?

Без разницы, роль играет только порядок результата. После отработки "select ... order by"
порядок записей в таблице меняется?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
13.04.2021, 12:55
    #40062005
xerxf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать рабочую сортировку по алфавиту?
Dimitry Sibiryakov,

роль играет соответствие решения постановки задачи. ТС написал - неправильно работает сортировка. Сортировки тут нет вообще. Если бы он написал - товары выводятся не в том порядке - вопросов бы не было.
...
Рейтинг: 0 / 0
13.04.2021, 13:05
    #40062010
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать рабочую сортировку по алфавиту?
xerxfТС написал - неправильно работает сортировка. Сортировки тут нет вообще.

Есть. Это так называемая "сортировка вставками".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
13.04.2021, 13:13
    #40062016
Aklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать рабочую сортировку по алфавиту?
Dimitry Sibiryakov
xerxf

Есть. Это так называемая "сортировка вставками".Здесь нет вставки.

Да и не по алфавиту это.
А по первым буквам.



АВТОР.
У тебя есть пример сортировки ну хотя бы целых чисел?
...
Рейтинг: 0 / 0
13.04.2021, 13:13
    #40062017
xerxf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать рабочую сортировку по алфавиту?
Dimitry Sibiryakov,

Ткните пожалуйста пальцем, где здесь сортировка хоть вставкой, хоть чем, в результате которой меняется порядок данных в исходной структуре
...
Рейтинг: 0 / 0
13.04.2021, 13:26
    #40062025
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать рабочую сортировку по алфавиту?
AklinЗдесь нет вставки.

"std::cout <<" это есть вставка в выходной поток, не так ли?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
13.04.2021, 13:42
    #40062036
xerxf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать рабочую сортировку по алфавиту?
Dimitry Sibiryakov

AklinЗдесь нет вставки.

"std::cout <<" это есть вставка в выходной поток, не так ли?..

эээээ.... это вот сейчас серьёзно было?
Я так понимаю БДшник? ответьте тогда на вопрос - индексация таблицы равны выводу данных из таблицы в нужном порядке ?
...
Рейтинг: 0 / 0
13.04.2021, 13:46
    #40062038
xerxf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать рабочую сортировку по алфавиту?
Dimitry Sibiryakov

AklinЗдесь нет вставки.

"std::cout <<" это есть вставка в выходной поток, не так ли?..

А что - удобный способ решения некоторого класса задач. :-) Типа вставить в какую то там позицию значение - std::cout <<позиция<<значение :-))))
...
Рейтинг: 0 / 0
13.04.2021, 13:48
    #40062039
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать рабочую сортировку по алфавиту?
xerxfэто вот сейчас серьёзно было?

Более чем. Прочитайте хотя бы половину третьего тома Кнута. Первую.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
13.04.2021, 13:49
    #40062040
petrav
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать рабочую сортировку по алфавиту?
Dimitry Sibiryakov

xerxfэто вот сейчас серьёзно было?

Более чем. Прочитайте хотя бы половину третьего тома Кнута. Первую.

Вы прочитали все три тома Кнута?!
...
Рейтинг: 0 / 0
13.04.2021, 14:07
    #40062049
xerxf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать рабочую сортировку по алфавиту?
Dimitry Sibiryakov,

и после прочтения именно первой половины третьего тома у меня сотрётся понимание разницы между выводом и сортировкой? Я пожалуй воздержусь тогда :-)
задам уточняющий вопрос - а если я захочу второй раз вывести уже отсортированный по вашему мнению вставкой массив - мне ведь не надо будет никаких условий писать, ничего?вот просто вывод в одинарном цикле и всё, всё выведится в нужном порядке? а если операия сравнения дорогая (я не про этот пример, а про подход в принципе), то после первой сортировки вставкой все последующие обращения к массивубудут идти быстро и в нужном порядке, да?
...
Рейтинг: 0 / 0
13.04.2021, 14:21
    #40062056
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать рабочую сортировку по алфавиту?
xerxfи после прочтения именно первой половины третьего тома у меня сотрётся понимание разницы
между выводом и сортировкой?

При некотором везении у Вас отпадут шоры, заставляющие считать сортировкой только пузырёк
по массиву.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
13.04.2021, 14:28
    #40062060
xerxf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать рабочую сортировку по алфавиту?
Dimitry Sibiryakov,

ну так наставьте на путь истинный -ответьте хоть на один мой уточняющий вопрос
...
Рейтинг: 0 / 0
13.04.2021, 15:38
    #40062113
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать рабочую сортировку по алфавиту?
Поддерживаю. В коде автора вообще бред, как это не называй.

Aklin
Да и не по алфавиту это.
А по первым буквам.
...
Рейтинг: 0 / 0
13.04.2021, 16:00
    #40062129
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать рабочую сортировку по алфавиту?
Если уж С++ то std::sort просится.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как сделать рабочую сортировку по алфавиту? / 25 сообщений из 26, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]