Avatar billede geforce3 Praktikant
07. september 2008 - 23:00 Der er 14 kommentarer og
1 løsning

spørge om tal og lægge sammen

Jeg har noget kode og målet er, at den skal spørge efter et tal. Så skal den tælle antal gange man skriver tallet, og så lægge dem sammen.

int i = 0;
int taeller = 0;
cin >> i;
++ taeller;
cout <<"Du brugte " << taeller << " forsoeg\n";
cout <<"Du brugte i gennemsnit dette tal " << nummer / taeller << "\n";

jeg har lidt mere kode på, så den kører i en løkke, men hvordan får jeg den til at lægge 'i' sammen i en variabel?
Avatar billede arne_v Ekspert
07. september 2008 - 23:19 #1
maaske noget a la:

int target = rand() % 100;
int n = 0;
do
{
  cout << "Indtast tal: ";
  int guess;
  cin >> guess;
  n++;
} while(guess != target);
cout << "Du brugte " << n << " forsoeg" << endl;
Avatar billede bertelbrander Novice
07. september 2008 - 23:19 #2
Det logiske må være noget i stil med:

int sum = 0;
...
sum += i;
Avatar billede geforce3 Praktikant
07. september 2008 - 23:23 #3
Arne v: hvordan får jeg den så til at lægge n sammen til sidst? så hvis man indtaster 10, 12 og 14, så skal den lægge det sammen og skrive "du brugte n forsøg og tallene lagt sammen giver 36."
Avatar billede geforce3 Praktikant
07. september 2008 - 23:36 #4
Min kode ser sådan ud, kan være det giver en idé om hvad jeg vil;

int main()
{
try{
    int i = 0;
    int taeller = 0;
    int biggest = 0;
    int smallest = 0;
    int sum = 0;
    do{
        cout <<"Indtast et positivt heltal ";
        cout <<"(0 eller negative tal vil afslutte prrogrammet!): ";
        cin >> i;
        ++ taeller;
        sum += i;
                if (! cin)
                    break;
                if (biggest < i)
                    biggest = i;
                    cout <<"Det stoerste tal indtil nu var: " << biggest << "\n";
                if (smallest > i)
                    smallest = i;
                    cout <<"Det mindste tal indtil nu var: " << smallest << "\n";
    }while (true);

    cout <<"Det stoerste tal var " << biggest << "\n";
    cout <<"Det mindste tal var " << smallest << "\n";
    cout <<"Du brugte " << taeller << " forsoeg\n";
    cout <<"tallene lagt sammen giver: " << sum <<"\n";
    cout <<"Du brugte i gennemsnit dette tal " << taeller / sum << "\n";

    system("pause");
}
catch(...)
{
cerr <<"*** Der skete en fejl. ***\n";
}
}
Avatar billede arne_v Ekspert
07. september 2008 - 23:37 #5
int target = rand() % 100;
int n = 0;
int sum = 0;
do
{
  cout << "Indtast tal: ";
  int guess;
  cin >> guess;
  n++;
  sum += guess;
}
while(guess != target);
cout << "Du brugte " << n << " forsoeg" << endl;
cout << "Summaen af dine gaet er " << sum << endl;
Avatar billede geforce3 Praktikant
07. september 2008 - 23:37 #6
Fejlen blvier ikke brugt til noget lige nu. Samtidig vil jeg gerne have hvis man skriver stop, så stopper den løkken, uden at skrive 'stop' til variablen
Avatar billede arne_v Ekspert
07. september 2008 - 23:43 #7
Jeg forstår slet ikke din løkke.

Hvornår forventer du at gå ud af den ?
Avatar billede geforce3 Praktikant
07. september 2008 - 23:46 #8
Vil gerne have, at hvis man skriver stop, så går den ud af lykken. Er ikke så skarp til det, og vi har det i skolen.

måske
if (! cin)
throw exception();

men hvordan får jeg den så til at stoppe ved 'stop'
Avatar billede arne_v Ekspert
08. september 2008 - 00:06 #9
måske noget a la:

string input;
getline(cin, input);
if(input == "stop")
{
  // afslut
}
else
{
  int v = atoi(input.c_str());
  // fortsæt
}
Avatar billede geforce3 Praktikant
08. september 2008 - 20:54 #10
Mange tak for hjælpen indtil videre! Er da nået lidt tættere på mit mål, men har stadig nogle problemer.

int main()
{
try{
    int i = 0;
    int taeller = 0;
    int biggest = 0;
    int smallest = 0;
    int sum = 0;
    string input;
    do{
        cout <<"Indtast et positivt heltal ";
        cout <<"(0 eller negative tal vil afslutte prrogrammet!): ";
        cin >> i;
        ++ taeller;
        sum += i;
                getline(cin, input);
                if (input == "stop")
                {
                  cout << " Der stoppes.\n"; //bare så jeg ved programmet stopper
                    break;
                }
                else
                int v = atoi(input.c_str());
                if (biggest < i)
                    biggest = i;
                    cout <<"Det stoerste tal indtil nu var: " << biggest << "\n";
                if (smallest > i)
                    smallest = i;
                    cout <<"Det mindste tal indtil nu var: " << smallest << "\n";
    }while (true);

    cout <<"Det stoerste tal var " << biggest << "\n";
    cout <<"Det mindste tal var " << smallest << "\n";
    cout <<"Du brugte " << taeller << " forsoeg\n";
    cout <<"tallene lagt sammen giver: " << sum <<"\n";
    cout <<"Du brugte i gennemsnit dette tal " << taeller + sum << "\n";

    system("pause");
}
catch(...)
{
cerr <<"*** Der skete en fejl. ***\n";
}
}


Jeg vil gerne have den fortsætter lykken hvis der skrives andet end stop, men det gør den ikke. Samtidig, så vil jeg gerne have variablen 'smallest' til at være det mindste positive tal, så hvis man skriver -2, 4, 6 og 45. Så er variablen 'biggest' = 45 og 'smallest' = 4

hvis du forstår hvor jeg vil hen???
Avatar billede geforce3 Praktikant
08. september 2008 - 20:55 #11
cout <<"Du brugte i gennemsnit dette tal " << taeller + sum << "\n";

skal du bare se bort fra, for den kom med fejl når den prøvede at dividere med 0
Avatar billede geforce3 Praktikant
08. september 2008 - 20:58 #12
og så er der int v = atoi(input.c_str());

hvad er v?
Avatar billede arne_v Ekspert
09. september 2008 - 18:14 #13
v er tallet som er in input - men altsaa som tal og ikke som streng
Avatar billede geforce3 Praktikant
19. september 2008 - 20:57 #14
Vil du lægge et svar?:) tak for hjælpen.
Avatar billede arne_v Ekspert
19. september 2008 - 21:19 #15
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester