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

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

  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
Похожие ответы