Problemer med en "beregnings" kode??

Tags:    c++

<< < 123 > >>
Hej
Jeg er ny her på siden, så jeg ved ikke rigtig hvordan det hele fungerer, men jeg vil gøre mit bedste for det. Jeg er begyndt at programmere i c++ i min fritid, og derfor løser jeg en masse opgaver for at få det trænet og blive rigtig god.
Jeg er nu gået lidt i stå med denne opgave:

Write a program that prompts the user for the current year and month, the user’ s current age in years and months, and another year and month. It then calculates the age that the user was or will be in the second year and month entered.
The program will produce the following output:

Enter the current year and then press RETURN:
2009
Enter the current month (a number from 1 to 12):
9
Enter your current age in years:
35
Enter the month in which you were born (a number from 1 to 12):
8
Enter the year for which you wish to know your age:
2020
Enter the month in this year:
6

Your age in 6/2020: 45 years and 10 months.

Fold kodeboks ind/udKode 


-Det jeg har problemer med er hvordan den såkaldte "beregning" i c++ ser ud?? Og her mener jeg hvordan man griber en kode an når den selv skal kunne finde alderen???

Og en anden ting jeg også har spekuleret lidt over er om man kan lave den sidste sætning i koden grammatisk korrekt.?? Dvs. hvis alderen bliver 4 years and 3 months, kan man så få programmet til selv at sætte et s ind hvor der er flertal??.. Det kunne egentlig være ret cool hvis man kunne få den til at gøre det.

tak.



29 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Glimrende!



Jeg tænkte på hvis jeg nu vil have programmet til at forstå at hver gang der er flertal skal der "s" på years og months. Og ved ental skal den så kun udskrive year og month til skærmen. Er der en let måde at gøre det på???



Der er ikke rigtigt nogen let måde at gøre det på, så man bliver nødt til at gøre det manuelt:

int months = something();
if(months > 1)
cout << months << " months" << endl;
else
cout << months << " month" << endl;

Det kan også skrives som:
cout << months << (months > 1 ? " months" : " month") << endl;



Okay, tænkte nok det var med en if-else sætning. Jeg forstår bare ikke lige hvorfor programmet stadigvæk ignorer at når years >1 og months>1 skal der s på og ellers ikke.

Ellers er det måske fordi jeg har sat det ind et forkert sted?

Fold kodeboks ind/udKode 




Har nu siddet og prøvet i 2 dage at få koden til at fungere sådan at når der er flertal skal der s på og ellers ikke, men desværre uden held. Kan du hjælpe for sidste gang bertel. Så jeg kan komme videre med andre lettere opgaver.



Undskyld, jeg kom væk fra denne.

Jeg vil gerne se den kode hvor du prøver at få den til at skrive med eller uden s, den sidste kode du postede prøver, så vidt jeg kan se, ikke på at gøre det rigtigt.



Helt ok. Jeg vil bare lige godt have det sidste på plads før jeg går videre med andre opgaver:

Fold kodeboks ind/udKode 






Du kan lave noget i stil med:

Fold kodeboks ind/udKode 




Indlæg senest redigeret d. 27.09.2009 19:34 af Bruger #4996
Sådan der:). Puha en opgave. Jeg holder mig nok til lettere opgaver nu, til at starte med:). Men tak for den store hjælp:)



<< < 123 > >>
t