Отсортировать элементы структуры по алфавиту поля "Наименование" - 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).