Cerința
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ă.
Restricții și precizări
1 ≤ n ≤ 1000
- cele
n
date calendaristice sunt corecte - dacă există două sau mai multe persoane cele mai tinere (în vârstă) se va afișa numărul de ordine mai mic
Exemplu
Intrare
5 1998 5 26 1987 12 18 1987 9 25 2015 1 16 2015 1 8
Ieșire
4 3
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema Aniversari:
#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;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #1013 Aniversari
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #1013 Aniversari de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!