Variabilele întregi x, y și z memorează valori specifice unei date calendaristice (zi, luna, an, într-o ordine oarecare) din luna ianuarie a anului 2021. Scrieți o secvență de instrucțiuni C/C++ în urma executării căreia se afișează pe ecran data propriu-zisă, în ordinea zi, lună, an. Exemplu: dacă x=2021, y=16, z=1 sau dacă x=16, y=1, z=2021 se afișează pe ecran 16 1 2021 iar dacă x=1, y=1, z=2021, se afișează pe ecran 1 1 2021
Răspunsuri la întrebare
Răspuns:
#include <iostream>
using namespace std;
int main()
{
int x,y,z;
cin>>x>>y>>z;
if(x>=1 && x<=30 && y>=1 && y<=12 ) cout<<x<<" "<<y<<" "<<z<<endl;
if(x>=1 && x<=30 && y>=1 && y<=12 && x<=12 && x!=y) cout <<y<<" "<<x<<" "<<z;
if(y>=1 && y<=30 && z>=1 && z<=12) cout<<y<<" "<<z<<" "<<x<<endl;
if(y>=1 && y<=30 && z>=1 && z<=12 && y<=12 && y!=z) cout<<z<<" "<<y<<" "<<x;
if(z>=1 && z<=30 && x>=1 && x<=12) cout<<z<<" "<<x<<" "<<y<<endl;
if(z>=1 && z<=30 && x>=1 && x<=12 && z<=12 && z!=x)cout<<x<<" "<<z<<" "<<y;
return 0;
}
Explicație:
am luat odata pt x=zi y= luna z=an
odata pt y=zi z=luna x=an
odata ptm z=zi x=luna y=an
dupa fiecare, am luat si daca ziua este mai mica decat 12, inseamna ca si aceasta poate fi o luna, deci daca introduci de exemplu la tastatura 1 2021 2 algoritmul iti afiseaza 1 2 2021 dar si 2 1 2021, pt ca sunt doua posibilitati.
Daca luna si zua sunt egale, am pus la if-ul fara endl, si x!=y, pt ca daca ziua si luna sunt egale, vreau sa imi afisze doar odata, nu de doua ori, daca nu puneam si acea conditie pt 1 1 2021 imi afisa 1 1 2021 si 1 1 2021, adica imi afisa aceeasi data de doua ori