#include <stdio.h>
#include <stdlib.h>
#define COUNT_ITEMS 4

typedef struct Product {
    char name[256];
    int day;
    int month;
    int year;
    int cost;
    int count;
} Product;
void printinfo(const Product *prod)
{
    printf("Product name: %s\n", prod->name);
    printf("Date of purchase : %d.%d.%d\n", prod->day, prod->month, prod->year);
    printf("Product price: %d\n", prod->cost);
    printf("Number of products: %d\n", prod->count);
}

Product *prodRead() {
    Product *prod;
    prod = malloc(sizeof(Product));
    printf("Enter name of a Product:\n");
    scanf("%s", &prod->name);
    printf("Enter day, month(number), year of purchase through a space:\n");
    scanf("%d%d%d", &prod->day, &prod->month, &prod->year);
    printf("Enter cost of product:\n");
    scanf("%d", &prod->cost);
    printf("Enter number of product:\n");
    scanf("%d", &prod->count);
return prod;
}
int compMon(const void *a, const void *b) {
    const Product *partOne = *(const Product **)a;
    const Product *partTwo = *(const Product **)b;
    return ((*partOne).month > (*partTwo).month) - ((*partOne).month < (*partTwo).month);
}
int main() {
    Product *prod[COUNT_ITEMS];
    for (int i = 0; i < COUNT_ITEMS; i++) {
        prod[i]=prodRead();
        printf("\n");
    }
    qsort(prod, COUNT_ITEMS, sizeof(Product*), compMon);
    printf("Structura POSLE sortirovki \n");
    for (int i = 0; i < COUNT_ITEMS; i++) {
        printinfo(prod[i]);
        printf("\n");
    }
return 0;
}
