Advertisement
fqrmix

Миша 5 лаба

Dec 9th, 2016
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.97 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define size1 100
  4.  
  5. struct BookInformation {
  6.     char surname[size1];
  7.     char bookname[size1];
  8.     unsigned int count;
  9.     unsigned int pages;
  10.     unsigned int price;
  11. };
  12.  
  13. void input(struct BookInformation *ptr, unsigned int n);
  14. unsigned int search(struct BookInformation *ptr, unsigned int n, unsigned int checker);
  15. void output(struct BookInformation *ptr, unsigned int s, unsigned int k);
  16.  
  17.  
  18. int main(void) {
  19.  
  20.     struct BookInformation BookInfo[size1], *ptr;
  21.  
  22.  
  23.     unsigned int n;
  24.     unsigned int s;
  25.     unsigned int k;
  26.  
  27.     s = 0;
  28.     k = 0;
  29.     printf("Введите количество книг \n");
  30.     scanf("%u", &n);
  31.     ptr = BookInfo;
  32.     input(BookInfo, n);
  33.     s = search(BookInfo, n, 1);
  34.     k = search(BookInfo, n, 2);
  35.     output(ptr, s, k);
  36.     system("pause");
  37.     return 0;
  38. }
  39.  
  40. void input(struct BookInformation *ptr, unsigned int n) {
  41.     for (unsigned int i = 0; i<n; i++) {
  42.         printf("Введите автора книги №%u: \n", i + 1);
  43.         scanf("%s", &(ptr + i)->surname);
  44.         printf("Введите название книги №%u: \n", i + 1);
  45.         scanf("%s", &(ptr + i)->bookname);
  46.         printf("Введите количество книг №%u: \n", i + 1);
  47.         scanf("%u", &(ptr + i)->count);
  48.         printf("Введите количество страниц книги №%u: \n", i + 1);
  49.         scanf("%u", &(ptr + i)->pages);
  50.         printf("Введите цену книги №%u: \n", i + 1);
  51.         scanf("%u", &(ptr + i)->price);
  52.         system("cls");
  53.     }
  54. }
  55.  
  56. unsigned int search(struct BookInformation *ptr, unsigned int n, unsigned int checker) {
  57.     switch (checker) {
  58.     case 1:
  59.         unsigned int max_price;
  60.         max_price = ptr->price;
  61.         unsigned int s;
  62.         s = 0;
  63.         for (unsigned int i = 0; i<n; i++) {
  64.             if ((ptr + i)->price>max_price) {
  65.                 max_price = (ptr + i)->price;
  66.                 s = i;
  67.             }
  68.         }
  69.         return s;
  70.         break;
  71.     case 2:
  72.  
  73.         unsigned max_count;
  74.         max_count = ptr->count;
  75.         unsigned int k = 0;
  76.         for (unsigned int i = 0; i<n; i++) {
  77.             if ((ptr + i)->count>max_count) {
  78.                 max_count = (ptr + i)->count;
  79.                 k = i;
  80.             }
  81.         }
  82.         return k;
  83.         break;
  84.     }
  85. }
  86. void output(struct BookInformation *ptr, unsigned int s, unsigned int k) {
  87.     system("cls");
  88.     printf("Самой дорогой книгой является %u\n", s + 1);
  89.     printf("Фамилия автора: %s\nНазвание книги: %s\nКоличество книг: %u\nКоличество страниц в книге:%u\nЦена:%u\n", (ptr + s)->surname, (ptr + s)->bookname, (ptr + s)->count, (ptr + s)->pages, (ptr + s)->price);
  90.     printf("*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*\n");
  91.     printf("Самой массовой книгой является %u\n", k + 1);
  92.     printf("Фамилия автора: %s\nНазвание книги: %s\nКоличество книг: %u\nКоличество страниц в книге:%u\nЦена:%u\n", (ptr + k)->surname, (ptr + k)->bookname, (ptr + k)->count, (ptr + k)->pages, (ptr + k)->price);
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement