Informatică, întrebare adresată de doupaskalesi, 8 ani în urmă

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 de Marcel64
4

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


Marcel64: sper ca e bine, mie in CodeBlocks imi iese :)
Marcel64: si sper ca ai inteles explicatia, daca nu, imi poti pune cate intrebari vrei :))
doupaskalesi: mersi mult
Alte întrebări interesante