#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( ) ;
}
qsort ( prod
, COUNT_ITEMS
, sizeof ( Product
* ) , compMon
) ; printf ( "Structura POSLE sortirovki \n " ) ; for ( int i = 0 ; i < COUNT_ITEMS; i++ ) {
printinfo( prod[ i] ) ;
}
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2RlZmluZSBDT1VOVF9JVEVNUyA0Cgp0eXBlZGVmIHN0cnVjdCBQcm9kdWN0IHsKICAgIGNoYXIgbmFtZVsyNTZdOwogICAgaW50IGRheTsKICAgIGludCBtb250aDsKICAgIGludCB5ZWFyOwogICAgaW50IGNvc3Q7CiAgICBpbnQgY291bnQ7Cn0gUHJvZHVjdDsKdm9pZCBwcmludGluZm8oY29uc3QgUHJvZHVjdCAqcHJvZCkKewogICAgcHJpbnRmKCJQcm9kdWN0IG5hbWU6ICVzXG4iLCBwcm9kLT5uYW1lKTsKICAgIHByaW50ZigiRGF0ZSBvZiBwdXJjaGFzZSA6ICVkLiVkLiVkXG4iLCBwcm9kLT5kYXksIHByb2QtPm1vbnRoLCBwcm9kLT55ZWFyKTsKICAgIHByaW50ZigiUHJvZHVjdCBwcmljZTogJWRcbiIsIHByb2QtPmNvc3QpOwogICAgcHJpbnRmKCJOdW1iZXIgb2YgcHJvZHVjdHM6ICVkXG4iLCBwcm9kLT5jb3VudCk7Cn0KClByb2R1Y3QgKnByb2RSZWFkKCkgewogICAgUHJvZHVjdCAqcHJvZDsKICAgIHByb2QgPSBtYWxsb2Moc2l6ZW9mKFByb2R1Y3QpKTsKICAgIHByaW50ZigiRW50ZXIgbmFtZSBvZiBhIFByb2R1Y3Q6XG4iKTsKICAgIHNjYW5mKCIlcyIsICZwcm9kLT5uYW1lKTsKICAgIHByaW50ZigiRW50ZXIgZGF5LCBtb250aChudW1iZXIpLCB5ZWFyIG9mIHB1cmNoYXNlIHRocm91Z2ggYSBzcGFjZTpcbiIpOwogICAgc2NhbmYoIiVkJWQlZCIsICZwcm9kLT5kYXksICZwcm9kLT5tb250aCwgJnByb2QtPnllYXIpOwogICAgcHJpbnRmKCJFbnRlciBjb3N0IG9mIHByb2R1Y3Q6XG4iKTsKICAgIHNjYW5mKCIlZCIsICZwcm9kLT5jb3N0KTsKICAgIHByaW50ZigiRW50ZXIgbnVtYmVyIG9mIHByb2R1Y3Q6XG4iKTsKICAgIHNjYW5mKCIlZCIsICZwcm9kLT5jb3VudCk7CnJldHVybiBwcm9kOwp9CmludCBjb21wTW9uKGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIpIHsKICAgIGNvbnN0IFByb2R1Y3QgKnBhcnRPbmUgPSAqKGNvbnN0IFByb2R1Y3QgKiopYTsKICAgIGNvbnN0IFByb2R1Y3QgKnBhcnRUd28gPSAqKGNvbnN0IFByb2R1Y3QgKiopYjsKICAgIHJldHVybiAoKCpwYXJ0T25lKS5tb250aCA+ICgqcGFydFR3bykubW9udGgpIC0gKCgqcGFydE9uZSkubW9udGggPCAoKnBhcnRUd28pLm1vbnRoKTsKfQppbnQgbWFpbigpIHsKICAgIFByb2R1Y3QgKnByb2RbQ09VTlRfSVRFTVNdOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBDT1VOVF9JVEVNUzsgaSsrKSB7CiAgICAgICAgcHJvZFtpXT1wcm9kUmVhZCgpOwogICAgICAgIHByaW50ZigiXG4iKTsKICAgIH0KICAgIHFzb3J0KHByb2QsIENPVU5UX0lURU1TLCBzaXplb2YoUHJvZHVjdCopLCBjb21wTW9uKTsKICAgIHByaW50ZigiU3RydWN0dXJhIFBPU0xFIHNvcnRpcm92a2kgXG4iKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgQ09VTlRfSVRFTVM7IGkrKykgewogICAgICAgIHByaW50aW5mbyhwcm9kW2ldKTsKICAgICAgICBwcmludGYoIlxuIik7CiAgICB9CnJldHVybiAwOwp9Cg==
stdin
QSAgICAgICAgICAgCjEwIDExIDIwMjAgIAoxMDAwICAgICAgICAKMiAgICAgICAgICAgCkIgICAgICAgICAgIAo1IDUgMjAxOSAKNTAwICAgICAgICAgCjMgICAgICAgICAgIApDICAgICAgICAgICAKNiA2IDIwMjAgICAgCjYwMCAgICAgICAgIAoxICAgICAgICAgICAKRCAgICAgICAgICAgCjMgMyAyMDE4ICAgIAoyMDAgICAgICAgICAKMiAgCg==
A
10 11 2020
1000
2
B
5 5 2019
500
3
C
6 6 2020
600
1
D
3 3 2018
200
2
stdout
Enter name of a Product:
Enter day, month(number), year of purchase through a space:
Enter cost of product:
Enter number of product:
Enter name of a Product:
Enter day, month(number), year of purchase through a space:
Enter cost of product:
Enter number of product:
Enter name of a Product:
Enter day, month(number), year of purchase through a space:
Enter cost of product:
Enter number of product:
Enter name of a Product:
Enter day, month(number), year of purchase through a space:
Enter cost of product:
Enter number of product:
Structura POSLE sortirovki
Product name: D
Date of purchase : 3.3.2018
Product price: 200
Number of products: 2
Product name: B
Date of purchase : 5.5.2019
Product price: 500
Number of products: 3
Product name: C
Date of purchase : 6.6.2020
Product price: 600
Number of products: 1
Product name: A
Date of purchase : 10.11.2020
Product price: 1000
Number of products: 2