Permalänk

hestler jag ska verkligen ta ditt tips till mig! Dock om jag tar bort if(dN!=0) så skrivs summan och medeltalet ut när jag trycker på 0, vilket ska vara till endast för program slut!

Det är en uppgift jag har som ska räkna ut summa, medelvärde och saker som jag inte kommit till ännu, man ska avsluta genom att trycka på 0 annars börjar programmet om och ber om nya tal och skriver ut ny summa och medelvärde. Man ska även kunna ange negativa tal och det ska användas funktioner.

Permalänk
Skrivet av perost:

Du har ändrat så att användaren måste ange hur många tal den vill mata in istället för att avsluta med 0.

men man får välja, om du inte vill mata in några tal (avsluta) trycker du på noll, annars skriver du in säg 5 och du får ange fem tal som ska beräknas

Permalänk
Medlem
Skrivet av FlowingPrana:

men man får välja, om du inte vill mata in några tal (avsluta) trycker du på noll, annars skriver du in säg 5 och du får ange fem tal som ska beräknas

Fast säger verkligen uppgiften att användaren ska mata in i förväg hur många tal den vill ange? Jag vet förstås inte vad uppgiften säger, men normalt brukar såna här uppgifter vara att användaren bara ska mata in tal och sen avsluta med 0. Det känns som att du krånglar till det i onödan.

Permalänk
Skrivet av perost:

Fast säger verkligen uppgiften att användaren ska mata in i förväg hur många tal den vill ange? Jag vet förstås inte vad uppgiften säger, men normalt brukar såna här uppgifter vara att användaren bara ska mata in tal och sen avsluta med 0. Det känns som att du krånglar till det i onödan.

nej du har helt rätt att uppgiften inte säger att man ska mata in hur många tal man ska ange men det är ända sättet som jag lyckas få input eller dN att registrera antalet tal så jag kan få fram medeltalet och kunna skriva in negativa tal.

uppgiften säger:
Skriv ett program som frågar efter ett antal tal och skriver ut summan och medelvärdet av de inmatade talen. Användaren ska ange 0 i slutet av talserien. Programmet ska dessutom skriva ut det näst största och det största talet. Programmet ska vara uppbyggt av ett antal funktioner med olika in och ut parametrar.

Exempel från körning:
Ange ett antal tal : 10 12 -5 20 -2 15 0
Summan = 50
Medelv. = 8.3
Största talet = 20
Näst största =15

Permalänk
Medlem
Skrivet av FlowingPrana:

nej du har helt rätt att uppgiften inte säger att man ska mata in hur många tal man ska ange men det är ända sättet som jag lyckas få input eller dN att registrera antalet tal så jag kan få fram medeltalet och kunna skriva in negativa tal.

Varför inte bara ha en variabel som du ökar med 1 för varje tal användaren matar in?

Permalänk

Jag ska kolla på det senare, men du har ju säkert rätt så tack på förhand!

Permalänk
Medlem
Skrivet av evil penguin:

"gör grejer" inkluderar ju "std::cin >> dN;" så man kommer ju till if-satsen med det senaste dN-värdet innan while-villkoret evalueras igen?

My bad... Klumpigt av mig.

Visa signatur

:(){ :|:& };:

🏊🏻‍♂️   🚴🏻‍♂️   🏃🏻‍♂️   ☕

Permalänk
Medlem
Skrivet av FlowingPrana:

nej du har helt rätt att uppgiften inte säger att man ska mata in hur många tal man ska ange men det är ända sättet som jag lyckas få input eller dN att registrera antalet tal så jag kan få fram medeltalet och kunna skriva in negativa tal.

uppgiften säger:
Skriv ett program som frågar efter ett antal tal och skriver ut summan och medelvärdet av de inmatade talen. Användaren ska ange 0 i slutet av talserien. Programmet ska dessutom skriva ut det näst största och det största talet. Programmet ska vara uppbyggt av ett antal funktioner med olika in och ut parametrar.

Exempel från körning:
Ange ett antal tal : 10 12 -5 20 -2 15 0
Summan = 50
Medelv. = 8.3
Största talet = 20
Näst största =15

Program() { antal = 0; summa = 0; Mata in siffror tills 0 matas in { summera talen som matas in. summera ANTAL tal som matas in } skriv ut medelvärdet (dividera summan med antalet) }

i c++ borde det motsvara typ :

int sum = 0; int nbrOfInts = 0; while (dN != 0) { std::cin >> dN; sum += dN; nbrOfInts++; } double avgVal = sum/nbrOfInts; std::cout <<"Summan blir " << avgVal << std::endl;

Denna koden verkar uppfylla de första kravet "Skriv ett program som frågar efter ett antal tal och skriver ut summan och medelvärdet av de inmatade talen. Användaren ska ange 0 i slutet av talserien."

Det behövs inte fler loopar eller liknande för att göra denna uppgiften

För att lösa det andra kravet "Programmet ska dessutom skriva ut det näst största och det största talet." behöver du inte lägga till särskilt mycket mer kod. Då texten säger att du ska ha koll på både största och näst största så bör du rimligt vis ha variabler som motsvarar dessa.

Du kommer behöva jämföra det nya talet med det nuvarande största talet. Sen kan du nog klura ut resten

Permalänk

Stort tack till alla som tagit sig tid att svara!!! Är nu klar med uppgiften. Hade inte klarat det utan er hjälp så tack!

Permalänk
Medlem

Du anger väl oss i Acknowledgement i inlämningen? 😳

Visa signatur

:(){ :|:& };:

🏊🏻‍♂️   🚴🏻‍♂️   🏃🏻‍♂️   ☕