Avatar billede soax Nybegynder
15. september 2004 - 17:30 Der er 14 kommentarer og
1 løsning

hvordan starter man forfra igen??

hallow

jeg er ved at lave en lommeregner, til slut i koden spørger den efter om man vil prøve igen.

hvordan får jeg den til at begynde igen og slutte hvis man siger nej??
Avatar billede onkel_satan Nybegynder
15. september 2004 - 18:05 #1
Kan du ikke smide det hele i en while løkke som holder øje med en variable er sat eller ej. Du kan så få brugeren til at sætte den lig fals eller sand i slutningen at dit program.
Avatar billede soax Nybegynder
15. september 2004 - 18:11 #2
har mere sådan noget her i tankerene




printf ("Dit resultat er %f\nVil du pr\x9Bve igen?\nja eller nej\n:", resultat);

    scanf ("%i", igen);

    if (igen = 1)
    {
        goto start;
    }
}
Avatar billede htm Nybegynder
15. september 2004 - 18:13 #3
Du kunne lave det som sådan her:

bool run=true;

while (run)
{
  //din kode

  if (igen = 1)
  {
    run=false;
  }

}
Avatar billede htm Nybegynder
15. september 2004 - 18:14 #4
Det skal self være med to = :)

  if (igen == 1)
  {
    run=false;
  }
Avatar billede arne_v Ekspert
15. september 2004 - 18:34 #5
char cont;
  do
  {
      ...
      cout << "Vil du prøve igen (Y/N) ? ";
      cin >> cont;
  } while((cont=='Y') || (cont=='y'));
Avatar billede soax Nybegynder
15. september 2004 - 19:13 #6
kan ikke få det L*** til at virke!

men anyways her er min kode


#include <stdio.h>

float tal1;
float tal2;
float resultat;
float valg;


void main(void)                                    //program start
{

    start:
    printf ("Indstat dit f\x9Brst tal\n:");        //her indtastes det første tal
    scanf ("%f", &tal1);                        //her gemmes det første tal

    printf ("Indtast dit n\x91ste tal\n:");        //her indtastes det næste tal
    scanf ("%f", &tal2);                        //her gemmes det næste tal

    printf ("Vil du plus s\x86 v\x91lge 1\nVil du minus s\x86 v\x91lge 2\nVil du gange s\x86 v\x91lge 3\nVil du dividere s\x86 v\x91lge 4\n:");        //her skal du vælge om hvad du vil gøre med tallene

    scanf ("%f", &valg);                        //her bliver dit valg gemt

    if (valg = 1)            //hvis du vælger 1 bliver de to tal plusset
    {
        resultat = tal1 + tal2;
    }
    if (valg = 2)        //hvis du vælger 2 bliver de to tal minuset
    {
        resultat = tal1 - tal2;
    }
    if (valg = 3)        //hvis du vælger 3 bliver de to tal ganget
    {
        resultat = tal1 * tal2;
    }
    if (valg = 4)        //hvis du vælger 4 bliver de to tal divideret
    {
        resultat = tal1 / tal2;
    }

    printf ("Dit resultat er %f\nVil du pr\x9Bve igen?\nja eller nej\n:", resultat);

}
Avatar billede arne_v Ekspert
15. september 2004 - 19:16 #7
Skal

valg = 1

ikke være

valg == 1

?
Avatar billede soax Nybegynder
15. september 2004 - 19:18 #8
jo hvis det skal være helt rigtigt!

men problemet er at jeg ikke fatter at starte den forfra.
Avatar billede arne_v Ekspert
15. september 2004 - 19:21 #9
Prøv:

#include <stdio.h>

int main(void)
{
    float tal1;
    float tal2;
    float resultat;
    int valg;
    int cont;

    do {

    printf ("Indstat dit f\x9Brst tal\n:");
    scanf ("%f", &tal1);

    printf ("Indtast dit n\x91ste tal\n:");
    scanf ("%f", &tal2);

    printf ("Vil du plus s\x86 v\x91lge 1\nVil du minus s\x86 v\x91lge 2\nVil du gange s\x86 v\x91lge 3\nVil du dividere s\x86 v\x91lge 4\n:");        //her skal du vælge om hvad du vil gøre med tallene

    scanf ("%d", &valg);

    if (valg == 1)
    {
        resultat = tal1 + tal2;
    }
    if (valg == 2)
    {
        resultat = tal1 - tal2;
    }
    if (valg == 3)
    {
        resultat = tal1 * tal2;
    }
    if (valg == 4)
    {
        resultat = tal1 / tal2;
    }

    printf ("Dit resultat er %f\nVil du pr\x9Bve igen?\n1=ja eller 2=nej\n:", resultat);
    scanf("%d",&cont);

    } while(cont==1);

}
Avatar billede arne_v Ekspert
15. september 2004 - 19:23 #10
Med lidt pænere indrykning:

#include <stdio.h>

int main(void)
{
    float tal1;
    float tal2;
    float resultat;
    int valg;
    int cont;

    do
    {

        printf ("Indstat dit f\x9Brst tal\n:");
        scanf ("%f", &tal1);
   
        printf ("Indtast dit n\x91ste tal\n:");
        scanf ("%f", &tal2);
   
        printf ("Vil du plus s\x86 v\x91lge 1\nVil du minus s\x86 v\x91lge 2\nVil du gange s\x86 v\x91lge 3\nVil du dividere s\x86 v\x91lge 4\n:");
   
        scanf ("%d", &valg);
   
        if (valg == 1)
        {
            resultat = tal1 + tal2;
        }
        if (valg == 2)
        {
            resultat = tal1 - tal2;
        }
        if (valg == 3)
        {
            resultat = tal1 * tal2;
        }
        if (valg == 4)
        {
            resultat = tal1 / tal2;
        }
   
        printf ("Dit resultat er %f\nVil du pr\x9Bve igen?\n1=ja eller 2=nej\n:", resultat);
        scanf("%d",&cont);

    }
    while(cont==1);

}
Avatar billede soax Nybegynder
15. september 2004 - 19:25 #11
YES! jo det virker fint!

mange tak du! :)
Avatar billede arne_v Ekspert
15. september 2004 - 19:29 #12
så ligger jeg et svar
Avatar billede arne_v Ekspert
15. september 2004 - 19:30 #13
En list anden måde at gøre det på:

#include <stdio.h>

int main(void)
{
    float tal1;
    float tal2;
    float resultat;
    int valg;
    int cont;

    while(1)
    {
        printf ("Vil du plus s\x86 v\x91lge 1\n"
                "Vil du minus s\x86 v\x91lge 2\n"
                "Vil du gange s\x86 v\x91lge 3\n"
                "Vil du dividere s\x86 v\x91lge 4\n"
                "Vil du afslutte s\x86 v\x91lge 5\n:");
        scanf ("%d", &valg);
       
        if(valg != 5)
        {
            printf ("Indstat dit f\x9Brst tal\n:");
            scanf ("%f", &tal1);
   
            printf ("Indtast dit n\x91ste tal\n:");
            scanf ("%f", &tal2);
        }
       
        switch(valg)
        {
            case 1:
                resultat = tal1 + tal2;
                break;
            case 2:
                resultat = tal1 - tal2;
                break;
            case 3:
                resultat = tal1 * tal2;
                break;
            case 4:
                resultat = tal1 / tal2;
                break;
            case 5:
                return 0;
        }
   
        printf ("Dit resultat er %f\n", resultat);
    }
}
Avatar billede soax Nybegynder
15. september 2004 - 19:31 #14
ja det gør du vist
Avatar billede arne_v Ekspert
26. september 2004 - 23:57 #15
så mangler du bare at acceptere svaret
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