Отсортировать элементы структуры по алфавиту поля "Наименование" - 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
).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д