Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Dobrý deň,
mám za úlohu takýto príklad v c++ :
Vytvorte v jazyku C++ štrukturovaný datovy typ datum se členmi deň, mesiac a rok. Potom vytvorte
štrukturovaný typ študent s clenmi meno, priezvisko a narodenie. Pre reprezentáciu jednotlivých členu štruktur zvoľte vhodne datove typy.
Ďalej napíšte funkcie int porovnaj_vek(student s1, student s2), ktorá porovná vek (resp. dátum narodenia) daných studentov a vráti hodnotu -1 v prípade, ze prvý študent je starší, 1 v prípade, že druhy študent je starsí a 0 v prípade zhodného data narodenia u oboch studentov. Podla návratových hodnôt funkcie porovnaj vek potom vo funkcii main vypíšte vhodný text na obrazovku.
Príklad výstupu:
Pepa Stary je starsi nez Adam Novak.
Robil som to takýmto spôsobm ale tá funkcia porovnaj_vek mi poriadne nefunguje
#include <iostream>
#include <string>
using namespace std;
struct Datum
{
int den;
int mesiac;
int rok;
};
struct Student
{
string meno;
string priezvisko;
Datum narodenia;
};
int porovnaj_vek(Student s1, Student s2)
{
if ((s1.narodenia.rok < s2.narodenia.rok) || (s1.narodenia.mesiac < s2.narodenia.mesiac) || (s1.narodenia.den < s2.narodenia.den))
return -1;
else if ((s1.narodenia.rok > s2.narodenia.rok) || (s1.narodenia.mesiac > s2.narodenia.mesiac) || (s1.narodenia.den > s2.narodenia.den))
return 1;
else if ((s1.narodenia.rok == s2.narodenia.rok) && (s1.narodenia.mesiac == s2.narodenia.mesiac) && (s1.narodenia.den == s2.narodenia.den))
return 0;
}
int main()
{
Student s1, s2;
int cislo;
cout << "Student 1:" << endl;
cout << "Zadaj meno: ";
cin >> s1.meno;
cout << "Zadaj priezvisko: ";
cin >> s1.priezvisko;
cout << "Zadaj den narodenia: ";
cin >> s1.narodenia.den;
cout << "Zadaj mesiac narodenia: ";
cin >> s1.narodenia.mesiac;
cout << "Zadaj rok narodenia: ";
cin >> s1.narodenia.rok;
cout << endl << "Student 2:" << endl;
cout << "Zadaj meno: ";
cin >> s2.meno;
cout << "Zadaj priezvisko: ";
cin >> s2.priezvisko;
cout << "Zadaj den narodenia: ";
cin >> s2.narodenia.den;
cout << "Zadaj mesiac narodenia: ";
cin >> s2.narodenia.mesiac;
cout << "Zadaj rok narodenia: ";
cin >> s2.narodenia.rok;
cislo = porovnaj_vek(s1, s2);
if (cislo == -1)
cout << endl << s1.meno << " " << s1.priezvisko << " je starsi ako " << s2.meno << " " << s2.priezvisko << endl;
else if (cislo == 1)
cout << endl << s1.meno << " " << s1.priezvisko << " je starsi ako " << s2.meno << " " << s2.priezvisko << endl;
else if (cislo == 0)
cout << endl << s1.meno << " " << s1.priezvisko << " je rovnako stary " << s2.meno << " " << s2.priezvisko << endl;
return 0;
}
Offline
Ahoj,
funkce na porovnavani veku je spatne, schvalne podle ni koukni kdo je z techhle starsi a kde je chyba:
s1: 2012-01-01
s2: 1930-06-30
Variant jak ji napsat spravne je vic, urcite na neco prijdes...
Offline