Tobias. Skrevet 11. september 2009 Del Skrevet 11. september 2009 sitter med en oblig her, følgende spm til dere. Får repetert spm mitt gangene jeg vil, men når jeg skal regne gjennomsnittet blir kun det siste tallet bruker skrev inn printet ut, kodene min er under switch(dager_mnd) { case 28: for(dager=1; dager<=28; dager++) { cout << "\nHvor mye nedbor var det dag " << dager << "?" << "\n"; cin >> nedbor28; g_nedbor28=nedbor/dager } cout << "Gjennomsnittelig nedbor er: " << g_nedbor28 << setw(3) << "mm"; Lenke til kommentar
Gjest Slettet+9871234 Skrevet 11. september 2009 Del Skrevet 11. september 2009 bak cin >> skal det vel stå g_nedbor28 eller ? uansett. scopet i loopen slutter ved }. du må antakeligvis summere opp all nedbøren pr dag og regne ut snittet etter scopet. dæven så lenge siden jeg har kodet c++. nedbor += nedbor28 } g_nedbor = nedbor / dager er dette helt fjernt eller? proffene får svare. Lenke til kommentar
Tobias. Skrevet 11. september 2009 Forfatter Del Skrevet 11. september 2009 (endret) bak cin >> skal det vel stå g_nedbor28 eller ? det står der, bare code taggen som bugga det litt g_nedbor28=nedbor28/dager; Har deklarert nedbor28 som dag 28, programmet spør bruker om nedbor 28 ganger, 1 per dag. bruker skriver inn 28 tall. Det jeg vil er at programmet skal summere alle tallene bruker skrev inn blir summert og delt på antall dager. får bare det siste talllet bruker skrev/dager som blir noe som 0.07, hva er feil? Endret 11. september 2009 av Tobias. Lenke til kommentar
Gjest Slettet+9871234 Skrevet 11. september 2009 Del Skrevet 11. september 2009 (endret) feilen er at den gjeldende verdien til g_nedbor28 i det du printer den ut alltid vil være siste tallet du skrev inn. hvis du legger inn nedbør 3 ganger med verdiene 4,5,6 vil kun 6 gjelde da du ikke summerer. det må gjøre er å plusse på nedbørsverdi for hver gang du skriver den inn. det skjer etter cin >> kommandoen. nedbor += g_nedbor28. da vil løkken regne ut 4, 4+5=9, 9+6=15. etter at for-loopen er kjørt kan skrive (nedbor / dager_mnd) men trenger du virkelig switch? float nedbor = 0; float g_nedbor = 0; int dager_mnd = 0; // skriv inn antall dager cin >> dager_mnd; for(int i=1; i<=dager_mnd; i++) // evnt initiere i=0 og fjerne < { cout << "\nHvor mye nedbor var det dag " << dager_mnd << "?\n"; cin >> nedbor; g_nedbor += nedbor; } // print ut gjennomsnitt cout << "\nSnitt nedbor for " << dager_mnd << "dager: " << (g_nedbor / dager_mnd) << "\n"; Endret 11. september 2009 av Slettet+9871234 Lenke til kommentar
Tobias. Skrevet 12. september 2009 Forfatter Del Skrevet 12. september 2009 Må ha en switch løkke fordi det bruker har flere valg, bruker dette istede for if setninger. Et lite problem til: cout << "\nVennligst hold deg innenfor intervallet -70 til 70, ellers vil" << "\n" << "lokka starte paa nytt\n"; do { for(dager=1; dager<=28; dager++) { cout << "\nHva var den minste temperaturen " << dager << "?" << " Oppgi svaret i celsius" << "\n"; cin >> min_tempr28; } } while(min_temp>min_tempr28>max_temp); //while løkka tar bare hensyn til det siste innskrevne tallet. Skjekker om brukers inntastede min_tempr28 mindre enn min_temp eller større enn max_temp, er dette tilfellet skal løkka gå på nytt. Men while setningen tar bare hensyn til det siste innskrevne tallet?! hvordan får jeg fikset slik at hvis bruker skriver inn et negativt tall eller større enn max_temp på f.eks dag 24, 13 osv. Catch my drift? Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå