Se dau datele de naștere a n persoane, numerotate de la 1 la n, în forma an luna zi. Să se determine numărul de ordine al celei mai tinere și al celei mai în vârstă persoană dintre cele date. Date de intrare Programul citește de la tastatură numărul n, iar apoi n triplete de numere naturale a l z, reprezentând anul, luna și ziua de naștere a fiecărei persoane. Date de ieșire Programul va afișa pe ecran două numere p q, reprezentând numărul de ordine al celei mai tinere, respectiv al celei mai în vârstă persoană.
Răspunsuri la întrebare
Răspuns de
6
#include <iostream>
using namespace std;
struct data{
int an , luna , zi;
};
int data_cmp(data x, data y)
{
//returneaza 0 daca datele sunt egale
// 1 daca x > y
// -1 daca x < y
if(x.an < y.an)
return -1;
if(x.an > y.an)
return 1;
if(x.luna < y.luna)
return -1;
if(x.luna > y.luna)
return 1;
if(x.zi < y.zi)
return -1;
if(x.zi > y.zi)
return 1;
return 0;
}
void citire(data & d)
{
cin >> d.an >> d.luna >> d.zi;
}
int main()
{
int n, p, q;
data dmin, dmax, d;
cin >> n;
citire(d);
dmin = dmax = d;
p = q = 1;
for(int i = 2 ; i <= n ; i ++)
{
citire(d);
if(data_cmp(d, dmin) < 0)
dmin = d, q = i;
if(data_cmp(d, dmax) > 0)
dmax = d, p = i;
}
cout << p << " " << q;
return 0;
}
Alte întrebări interesante
Engleza,
9 ani în urmă
Matematică,
9 ani în urmă
Engleza,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă