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

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

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

Уважаемые программист, помогите пожалуйста отсортировать книги за ценой по возрастанию их стоимости. Заранее спасибо
Листинг программы
  1. #include<stdio.h>
  2. #include<math.h>
  3. #include<locale.h>
  4. int main()
  5. {
  6. int i, T, j ; int s;
  7. union book{
  8. char avtor[50];
  9. int stranitsi;
  10. int price;
  11. char name[50];
  12. };
  13. setlocale(LC_ALL, "rus");
  14. printf(" введите количество книг: ", T);
  15. scanf("%d", &T);
  16. union book kni[T];
  17. for(i=0; i<T; i++)
  18. {
  19. printf("%d-й товар",i+1);
  20. printf("\n Название:"); scanf("%s", &kni[i].name);
  21. printf("\n Автор:"); scanf("%s", &kni[i].avtor);
  22. printf("\n Количество страниц:"); scanf("%d", &kni[i].stranitsi);
  23. printf("\n Цена:"); scanf("%d", &kni[i].price);}
  24. for(i=0; i<T; i++)
  25. {
  26. if(kni[i].price > kni[i+1].price)
  27. { s=kni[i].price;
  28. kni[i].price=kni[i+1].price;
  29. kni[i+1].price=s;
  30. }
  31. for(i=0; i<T; i++)
  32. printf("%d\t", kni[i].price);
  33. }system("pause");
  34. }

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

textual
Листинг программы
  1. #include<stdio.h>
  2. #include<math.h>
  3. #include<locale.h>
  4. #include<ctype.h>
  5. int main()
  6. {
  7.     setlocale(LC_ALL, "rus");
  8.     int i, T, j ;   int s;
  9.     printf("Введите количество книг:");
  10.     scanf("%d", &T);
  11.     struct book{
  12.         char avtor[50];
  13.         int stranitsi;
  14.         int price;
  15.         char name[50];
  16.     }kni[T],c;
  17.     for(i=0; i<T; i++)
  18.     {
  19.         printf("\n%d-й товар\n",i+1);
  20.         printf("Название:");
  21.         scanf("%s", &kni[i].name);
  22.         printf("Автор:");
  23.         scanf("%s", &kni[i].avtor);
  24.         printf("Количество страниц:");
  25.         scanf("%d", &kni[i].stranitsi);
  26.         printf("Цена:");
  27.         scanf("%d", &kni[i].price);}
  28.     for ( i = 0; i < T-1; i ++ )
  29.     for ( j = T-2; j >= i; j -- )
  30.     if ( kni[j].price >kni[j+1].price )
  31.     {
  32.     c = kni[j]; kni[j] =kni[j+1];
  33.     kni[j+1] = c;
  34.     }
  35.         for(i=0; i<T; i++){
  36.         printf("%d\t", kni[i].price);
  37.         }
  38. system("pause");
  39. }

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

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

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


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

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

14   голосов , оценка 3.786 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы