Отсортировать массив книг по возрастанию их стоимости - C (СИ)

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

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

Уважаемые программист, помогите пожалуйста отсортировать книги за ценой по возрастанию их стоимости. Заранее спасибо
#include<stdio.h>
#include<math.h>
#include<locale.h>
int main()
{
    int i, T, j ;   int s;
    union book{
        char avtor[50];
        int stranitsi;
        int price;
        char name[50];
    };
    setlocale(LC_ALL, "rus");
 
    printf(" введите количество книг: ", T);
    scanf("%d", &T);
    union book kni[T];
    for(i=0; i<T; i++)
    {
    
        printf("%d-й товар",i+1);
        printf("\n Название:"); scanf("%s", &kni[i].name);
        printf("\n Автор:"); scanf("%s", &kni[i].avtor);
        printf("\n Количество страниц:"); scanf("%d", &kni[i].stranitsi);
        printf("\n Цена:"); scanf("%d", &kni[i].price);}
        for(i=0; i<T; i++)
        {           
                if(kni[i].price > kni[i+1].price)
            {   s=kni[i].price;
                kni[i].price=kni[i+1].price;
                kni[i+1].price=s;
            }
        for(i=0; i<T; i++)
        printf("%d\t", kni[i].price);
}system("pause");
}

Решение задачи: «Отсортировать массив книг по возрастанию их стоимости»

textual
Листинг программы
#include<stdio.h>
#include<math.h>
#include<locale.h>
#include<ctype.h>
int main()
{
    setlocale(LC_ALL, "rus");
    int i, T, j ;   int s;
    printf("Введите количество книг:");
    scanf("%d", &T);
    struct book{
        char avtor[50];
        int stranitsi;
        int price;
        char name[50];
    }kni[T],c;
    for(i=0; i<T; i++)
    {
        printf("\n%d-й товар\n",i+1);
        printf("Название:");
        scanf("%s", &kni[i].name);
        printf("Автор:");
        scanf("%s", &kni[i].avtor);
        printf("Количество страниц:");
        scanf("%d", &kni[i].stranitsi);
        printf("Цена:");
        scanf("%d", &kni[i].price);}
    for ( i = 0; i < T-1; i ++ )
    for ( j = T-2; j >= i; j -- )
    if ( kni[j].price >kni[j+1].price )
    {
    c = kni[j]; kni[j] =kni[j+1];
    kni[j+1] = c;
    }
        for(i=0; i<T; i++){
        printf("%d\t", kni[i].price);
        }
system("pause");
}

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

  1. Включаются необходимые заголовочные файлы
  2. Устанавливается русская локальная настройка для вывода
  3. Пользователю предлагается ввести количество книг, которое будет храниться в массиве
  4. Создается структура book для хранения информации о каждой книге, включая название, автора, количество страниц и цену
  5. Пользователю предлагается ввести данные о каждой книге (название, автор, количество страниц, цена)
  6. Производится сортировка массива книг по возрастанию их цены с использованием алгоритма сортировки пузырьком
  7. Выводится отсортированный массив цен книг
  8. Программа завершается

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


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

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

14   голосов , оценка 3.786 из 5
Похожие ответы