Nicklas Skrevet 1. november 2003 Del Skrevet 1. november 2003 Hei Jeg lurte på hvordan man lager et programm som regner ut gjennomsnitt av et aller annet .... har sett et programm i dette forumet . men jeg vil ha et prog. som man velger først hvor mange tall det skal regnes gjennomsnitt av. kan noen si meg hvordan man lager det ? f.eks i stede for at man MÅ ta 10 stk kan man velge selv i det andre prgrammet i dette forumet ..... Håper på svar snarest ... Lenke til kommentar
daysleper Skrevet 2. november 2003 Del Skrevet 2. november 2003 #include <iostream> #include <iomanip> using namespace std; int main() { int antall = 0; double sum = 0; double temp; cout << "Skriv inn ett og ett tall, avslutt ved å skrive inn noe som ikke er et tall:" << endl; while(cin >> temp) { sum += temp; antall++; cout << "Gjennomsnittet er: " << fixed << setprecision(2) << sum / antall << endl; } return(0); } Lenke til kommentar
daysleper Skrevet 2. november 2003 Del Skrevet 2. november 2003 eller.. #include <iostream> #include <iomanip> using namespace std; int main() { int teller = 0; int antall; double sum = 0; double temp; cout << "Antall tall som skal leses inn: "; cin >> antall; while(teller < antall) { cout << "Skriv inn tall nr. " << teller + 1 << " : "; cin >> temp; sum += temp; teller++; cout << "Gjennomsnittet er: " << fixed << setprecision(2) << sum / antall << endl; } return(0); } ..som var mer det du spurte etter kanskje. Lenke til kommentar
daysleper Skrevet 2. november 2003 Del Skrevet 2. november 2003 ..og en som bruker exceptions og er litt "snillere" når brukeren taster feil: #include <iostream> #include <iomanip> using namespace std; int main() { int teller = 0; int antall = 0; double sum = 0; double temp; cin.exceptions(ios_base::badbit | ios_base::failbit); while(!antall > 0) { try { cout << "Antall tall som skal leses inn: "; cin >> antall; } catch(...) { cout << "Hmm.. prøv igjen." << endl << endl; cin.clear(); cin.ignore(); } } while(teller < antall) { cout << "Skriv inn tall nr. " << teller + 1 << " : "; try { cin >> temp; sum += temp; teller++; cout << "Gjennomsnittet er: " << fixed << setprecision(2) << sum / antall << endl << endl; } catch(...) { cout << "Hmm.. prøv igjen." << endl << endl; cin.clear(); cin.ignore(); } } return(0); } Eksekverbare filer, for Linux: http://nostdal.net/lars/forumstuff/gjsnitt for Windows: http://nostdal.net/lars/forumstuff/gjsnitt.exe Lenke til kommentar
daysleper Skrevet 2. november 2003 Del Skrevet 2. november 2003 cout << "Gjennomsnittet er: " << fixed << setprecision(2) << sum / antall << endl << endl; kunne vært: cout << "Gjennomsnittet er: " << fixed << setprecision(2) << sum / (teller + 1) << endl << endl; ..i stedet kanskje. Lenke til kommentar
Nicklas Skrevet 2. november 2003 Forfatter Del Skrevet 2. november 2003 tusen takk for mange svar : Lenke til kommentar
Layne Skrevet 2. november 2003 Del Skrevet 2. november 2003 [...] while(cin >> temp) { [...] Hva gjør denne? To ting på en gang, leser inn temp og kjører while-løkka så lenge inputen er double? Lenke til kommentar
daysleper Skrevet 3. november 2003 Del Skrevet 3. november 2003 Ja. Kort fortalt så har objektet cin (av klassen basic_istream) en operator void*() som returnerer statusen til cin. cin returnerer status "feil format" (false eller 0) når man prøver å lese inn data i "temp" som ikke er tall (riktig format). http://gcc.gnu.org/onlinedocs/libstdc++/la...tringstreamz3_0 Det finnes mange ting i C/C++ som gjør "to ting på en gang". int funk() { return(1); } int main() { return(funk()); // to ting på "en gang" } 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å