Отсортировать элементы структуры по алфавиту поля "Наименование" - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Всем привет! Разбираюсь со структурами и стала задача отсортировать элементы структуры по алфавиту поля "Наименование". Понятия не имею, как это сделать... То есть, например ________________ Было: Кукуруза Сильпо 15 Петрушка АТБ 5 Морковка Метро 10 _________________ Стало: Кукуруза Сильпо 15 Морковка Метро 10 Петрушка АТБ 5 _________________
Листинг программы
  1. #define n 3
  2. int main()
  3. {
  4. int i;
  5. setlocale(LC_ALL, "Russian");
  6. struct
  7. {
  8. char item[20];
  9. char shop[20];
  10. int price;
  11. } goods[n];
  12. for(i = 0; i < n; i++)
  13. {
  14. printf("\nВведите название товара (ENG) № %d: ",i+1);
  15. scanf("%s",&goods[i].item);
  16. printf("\nВведите название магазина (ENG) № %d: ",i+1);
  17. scanf("%s",&goods[i].shop);
  18. printf("\nВведите стоимость товара № %d: ",i+1);
  19. scanf("%d",&goods[i].price);
  20. }
  21. system("cls");
  22. printf(" Товар");
  23. printf(" Магазин");
  24. printf(" Цена");
  25. for(i = 0; i < n; i++)
  26. {
  27. printf("\n");
  28. printf(" %s",goods[i].item);
  29. printf(" %s",goods[i].shop);
  30. printf(" %d",goods[i].price);
  31. }
  32. getch();
  33. return 0;
  34. }

Решение задачи: «Отсортировать элементы структуры по алфавиту поля "Наименование"»

textual
Листинг программы
  1. #include <iostream>
  2. #include <fstream>
  3. #define n 20
  4. using namespace std;
  5. ifstream fin("d.txt");
  6. struct{
  7. char name[10];
  8. }a[n];
  9. int main()
  10. {
  11. for(int i=0;i<n;i++)
  12. fin>>a[i].name;
  13. for(int i=0;i<n;i++)
  14. cout<<a[i].name<<endl;
  15. system("pause");
  16. }

Объяснение кода листинга программы

  1. Подключение необходимых библиотек для работы с файлами и вводом-выводом (iostream, fstream).
  2. Установка константы n равной 20, определяющей количество элементов в массиве.
  3. Открытие файла d.txt для чтения с помощью объекта ifstream fin.
  4. Объявление структуры, содержащей одно поле name типа char с длиной 10 символов.
  5. Создание массива a типа struct, содержащего n элементов структуры.
  6. Чтение значений из файла в поля name массива a с помощью цикла for и оператора >>.
  7. Вывод значений полей name массива a на экран с помощью цикла for и оператора <<.
  8. Ожидание нажатия клавиши для завершения работы программы с помощью функции system(pause).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы