Informatică, întrebare adresată de mihneaandrei69, 9 ani în urmă

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 ionutg38
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