Отсортировать элементы структуры по алфавиту поля "Наименование" - C (СИ)
Формулировка задачи:
Всем привет!
Разбираюсь со структурами и стала задача отсортировать элементы структуры по алфавиту поля "Наименование". Понятия не имею, как это сделать...
То есть, например
________________
Было:
Кукуруза Сильпо 15
Петрушка АТБ 5
Морковка Метро 10
_________________
Стало:
Кукуруза Сильпо 15
Морковка Метро 10
Петрушка АТБ 5
_________________
Листинг программы
- #define n 3
- int main()
- {
- int i;
- setlocale(LC_ALL, "Russian");
- struct
- {
- char item[20];
- char shop[20];
- int price;
- } goods[n];
- for(i = 0; i < n; i++)
- {
- printf("\nВведите название товара (ENG) № %d: ",i+1);
- scanf("%s",&goods[i].item);
- printf("\nВведите название магазина (ENG) № %d: ",i+1);
- scanf("%s",&goods[i].shop);
- printf("\nВведите стоимость товара № %d: ",i+1);
- scanf("%d",&goods[i].price);
- }
- system("cls");
- printf(" Товар");
- printf(" Магазин");
- printf(" Цена");
- for(i = 0; i < n; i++)
- {
- printf("\n");
- printf(" %s",goods[i].item);
- printf(" %s",goods[i].shop);
- printf(" %d",goods[i].price);
- }
- getch();
- return 0;
- }
Решение задачи: «Отсортировать элементы структуры по алфавиту поля "Наименование"»
textual
Листинг программы
- #include <iostream>
- #include <fstream>
- #define n 20
- using namespace std;
- ifstream fin("d.txt");
- struct{
- char name[10];
- }a[n];
- int main()
- {
- for(int i=0;i<n;i++)
- fin>>a[i].name;
- for(int i=0;i<n;i++)
- cout<<a[i].name<<endl;
- system("pause");
- }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и вводом-выводом (iostream, fstream).
- Установка константы n равной 20, определяющей количество элементов в массиве.
- Открытие файла d.txt для чтения с помощью объекта ifstream fin.
- Объявление структуры, содержащей одно поле name типа char с длиной 10 символов.
- Создание массива a типа struct, содержащего n элементов структуры.
- Чтение значений из файла в поля name массива a с помощью цикла for и оператора >>.
- Вывод значений полей name массива a на экран с помощью цикла for и оператора <<.
- Ожидание нажатия клавиши для завершения работы программы с помощью функции system(
pause
).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д