Avatar billede maxmuldjord Nybegynder
10. september 2004 - 14:44 Der er 10 kommentarer og
1 løsning

Igen problem med en while

Hej exp.

Denne er jeg kørt fast i. Programmet skal finde et givet tal. Jeg troede at jeg var snedig ved at lave nedenstående men den vil ikke kendes ved C. Havd gør jeg for at komme videre?

Koden er som følger:

static void Main(string[] args)
        {
            //
            // TODO: Add code to start application here
            //
            int minNumber = 0;
            int maxNumber = 100;
            int numberGuess = 0;
            string reply;

            Console.WriteLine("My guess is: {0}", ((maxNumber + minNumber) / 2));
            Console.WriteLine("Enter H for (H)igher, L for (L)ower or C for (C)orrect");
            reply = Console.ReadLine().ToUpper();
        while (reply!=C)
        {
            numberGuess++;
        if (reply == "H")
            minNumber = (maxNumber + minNumber) / 2;
               
       
        if (reply == "L")
                    maxNumber = (maxNumber + minNumber) / 2;
           
       
        if  (reply == "C")
          Console.WriteLine ("I gussed the number in:", numberGuess);
          Console.ReadLine ();
        }



        }
    }
}
Avatar billede bennytordrup Nybegynder
10. september 2004 - 14:47 #1
static void Main(string[] args)
        {
            //
            // TODO: Add code to start application here
            //
            int minNumber = 0;
            int maxNumber = 100;
            int numberGuess = 0;
            string reply;

            Console.WriteLine("My guess is: {0}", ((maxNumber + minNumber) / 2));
            Console.WriteLine("Enter H for (H)igher, L for (L)ower or C for (C)orrect");
            reply = Console.ReadLine().ToUpper();
        while (reply!="C")
        {
            numberGuess++;
        if (reply == "H")
            minNumber = (maxNumber + minNumber) / 2;
               
       
        if (reply == "L")
                    maxNumber = (maxNumber + minNumber) / 2;
           
       
        if  (reply == "C")
          Console.WriteLine ("I gussed the number in:", numberGuess);

        reply = Console.ReadLine ();
        }



        }
    }
}
Avatar billede maxmuldjord Nybegynder
10. september 2004 - 14:54 #2
ok, fejlen er væk men det virker ikke det skidt, har du et bud?
Avatar billede bennytordrup Nybegynder
10. september 2004 - 14:57 #3
Ja, den sidste reply = Console.ReadLine() skal ændres til

reply = Console.ReadLine().ToUpper();

Desuden er der ingen fidus i at have

if (reply == "C")

inden for whilen, da whilen ikke vil blive udført, hvis reply == "C".



static void Main(string[] args)
        {
            //
            // TODO: Add code to start application here
            //
            int minNumber = 0;
            int maxNumber = 100;
            int numberGuess = 0;
            string reply;

            Console.WriteLine("My guess is: {0}", ((maxNumber + minNumber) / 2));
            Console.WriteLine("Enter H for (H)igher, L for (L)ower or C for (C)orrect");
            reply = Console.ReadLine().ToUpper();
        while (reply!="C")
        {
            numberGuess++;
        if (reply == "H")
            minNumber = (maxNumber + minNumber) / 2;
               
       
        if (reply == "L")
                    maxNumber = (maxNumber + minNumber) / 2;
           
       
        reply = Console.ReadLine().ToUpper;
        }

        Console.WriteLine ("I gussed the number in:", numberGuess);



        }
    }
}
Avatar billede maxmuldjord Nybegynder
10. september 2004 - 15:09 #4
Så brokker den sig over den sidste ToUpper
Avatar billede maxmuldjord Nybegynder
10. september 2004 - 15:14 #5
Min fejl, jeg havde glemt () efter ToUpper men den kører stadigvæk ikke igennem
Avatar billede bennytordrup Nybegynder
10. september 2004 - 15:24 #6
static void Main(string[] args)
        {
            //
            // TODO: Add code to start application here
            //
            int minNumber = 0;
            int maxNumber = 100;
            int numberGuess = 0;
            string reply;

            Console.WriteLine("My guess is: {0}", ((maxNumber + minNumber) / 2));
            Console.WriteLine("Enter H for (H)igher, L for (L)ower or C for (C)orrect");
            reply = Console.ReadLine().ToUpper();
        while (reply!="C")
        {
            numberGuess++;
        if (reply == "H")
            minNumber = (maxNumber + minNumber) / 2;
               
       
        if (reply == "L")
                    maxNumber = (maxNumber + minNumber) / 2;
           
       
          Console.WriteLine("My guess is: {0}", ((maxNumber + minNumber) / 2));
          Console.WriteLine("Enter H for (H)igher, L for (L)ower or C for (C)        reply = Console.ReadLine().ToUpper;
        }

        Console.WriteLine ("I gussed the number in:", numberGuess);



        }
    }
}
Avatar billede bennytordrup Nybegynder
10. september 2004 - 15:25 #7
static void Main(string[] args)
        {
            //
            // TODO: Add code to start application here
            //
            int minNumber = 0;
            int maxNumber = 100;
            int numberGuess = 0;
            string reply;

            Console.WriteLine("My guess is: {0}", ((maxNumber + minNumber) / 2));
            Console.WriteLine("Enter H for (H)igher, L for (L)ower or C for (C)orrect");
            reply = Console.ReadLine().ToUpper();
        while (reply!="C")
        {
            numberGuess++;
        if (reply == "H")
            minNumber = (maxNumber + minNumber) / 2;
               
       
        if (reply == "L")
                    maxNumber = (maxNumber + minNumber) / 2;
           
       
        Console.WriteLine("My guess is: {0}", ((maxNumber + minNumber) / 2));
        Console.WriteLine("Enter H for (H)igher, L for (L)ower or C for (C)orrect");
        reply = Console.ReadLine().ToUpper();
        }

        Console.WriteLine ("I gussed the number in:", numberGuess);



        }
    }
}
Avatar billede maxmuldjord Nybegynder
10. september 2004 - 15:35 #8
Tak for det, vi er ved at være der, jeg tror nok jeg kan se ideen men jeg mangler at den skriver hvor mange gæt den har brugt, den lukker ned når man taster C. Skal lige ud at handle kommer snart tilbage, ellers mange tak for hjælpen !
Avatar billede bennytordrup Nybegynder
10. september 2004 - 15:50 #9
Set en

reply = Console.ReadLine();

ind efter den sidste console.writeline.


Bortset fra det, hvis du afvikler programmet fra en dos boks, vil den ikke lukke dosboksen. Det gør den formodentlig fordi, du kører fra Visual Studio.NET
Avatar billede maxmuldjord Nybegynder
10. september 2004 - 17:09 #10
Ja du har ret i jeg kører det fra VS NET. den vil ikke skirve hvor mange gange den har gættet, ellers virker det
Avatar billede maxmuldjord Nybegynder
10. september 2004 - 17:49 #11
ok, det virker, jeg havde et komme med i min udskrivning. Tusind tak for hjælpen!
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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