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
Du skal sikkert også bruge Month_born og Month_another i din beregning.

Der er i øvrigt et problem med at vi giver måneder numre fra 1-12, det giver problemer med /12 og %12.
Den letteste måde at komme over det problem er at trække 1 fra månederne inden beregningen og lægge en til efter beregningen.

Da du kun regner med hele måneder, er der ikke problemer med skudår, eller at måneder har forskellige længder.



Den med månederne er jeg ikke helt med på. Hvorfor giver det problemer med /12 og %12:

Fold kodeboks ind/udKode 


Men er helt med på at skudår jo ingen betydning har når jeg alligevel regner med hele måneder.




Hvis du f.eks har
int maaned = 12; // December

Så vil dette:
cout << maaned/12 << ", " << maaned%12 << endl;

Udskrive:
1, 0

Dvs 1 helt år og ingen måneder, det man ville forvente var nok 0 år og 11 måneder.

Jeg er ikke sikker på at det giver problemer, men du skal nok lige være opmærksom på det.



Okay, jeg gjorde som du sagde, men nu giver output 47 years and 10 months. Månederne passe,men det gør years ikke. Er det fordi jeg har skrevet koden forkert op:
Fold kodeboks ind/udKode 






Jeg tror tiden er kommet til at du prøver en anden metode.

Find et stykke papir og en blyant, lav 3-5 eksempler og prøv at regne dem ud i hånden. Derved skulle du gerne kunne komme frem til en metode til at regne regnestykket ud.

Derpå skal du "bare" have din metode "oversat" til C++, det tror jeg er det mindste problem.

For dit problem har (så vidt jeg kan se) ikke noget med C++ at gøre, det er ren matematik.



Ja du har jo fuldstændig ret. Det er nemlig også den matematiske del i opgaven jeg har grublet meget over her til aftes:)

Men umiddelbart tror jeg at løsningen er der. Jeg har regnet på det bare med tallene denne gang:

Fold kodeboks ind/udKode 


Jeg har så fået outputtet til 45 years and 10 Months





Har jeg regnet rigtig????



Det ved jeg ikke...
Du bliver nok nødt til at regne efter i hånden.



Jeg har regnet efter, og alderen passer perfekt, men synes månederne ikke helt er på plads.
Har jeg glemt noget i koden, eller skrevet noget forkert op:

Fold kodeboks ind/udKode 






SÅDAN. Nu er den på plads:D

Det hjalp lige at se på opgaven igen:P



<< < 123 > >>
t