2010-09-13 24 views
1
class Class1 
{ 

[STAThread] 
    static void Main(string[] args) 
    { 

    int lap, avg = 0; 
    double time = 0; 
    Random generator = new Random(); 
    time = generator.Next(5, 10); 


    for (lap = 1; lap <= 10; lap++) 

    { 

    time = (generator.NextDouble())* 10 + 1; 
    Console.WriteLine("Lap {0} with a lap time of {1} seconds!!!!"lap,time.ToString("##.00")); 

    }// end for 

    Console.WriteLine("The total time it took is {0}",time); 
        Console.WriteLine(); 
    Console.WriteLine(); 
    Console.WriteLine(); 
    Console.WriteLine("Slap the enter key to continue"); 
    Console.ReadLine(); 
    } 
} 
} 

Je suis en train de me enseigner C#, mais ce problème m'a vraiment déconcerté. Comment puis-je ajouter la variable de temps à chaque fois dans la boucle pour obtenir la somme de tous les dix tours? toute aide serait appréciée :) merciEn additionnant la somme des nombres générés au hasard dans une boucle

Répondre

3

Si je vous ai bien compris, vous devez introduire une nouvelle variable pour maintenir le temps total:

class Program 
{ 
    [STAThread] 
    static void Main(string[] args) 
    { 
     int lap, avg = 0; 

     Random generator = new Random(); 

     double time = generator.Next(5, 10); 
     double totalTime = 0.0; 

     for (lap = 1; lap <= 10; lap++) 
     { 
      time = (generator.NextDouble())* 10 + 1; 
      Console.WriteLine("Lap {0} with a lap time of {1:##.00} seconds!!!!", 
       lap, time); 

      totalTime += time; 
     } 

     Console.WriteLine("The total time it took is {0}", totalTime); 
     Console.WriteLine(); 
     Console.WriteLine(); 
     Console.WriteLine(); 
     Console.WriteLine("Slap the enter key to continue"); 
     Console.ReadLine(); 
    } 
} 
+0

quelque chose si facile .... Merci beaucoup :) – Chris

+0

Désolé pour ceux qui essayent de le rendre agréable, j'étais aussi en mode édition ... mon mauvais mais merci à tous! – Chris

+0

@Chris: Remercier SO fonctionne en cliquant sur les flèches vers le haut à gauche de la question, et en acceptant les réponses en cliquant sur la coche à côté de la question qui vous a le plus aidé. –

2

Vous devez inclure la valeur précédente de time dans votre une addition.

time = time + (generator.NextDouble())* 10 + 1;

ou

time += (generator.NextDouble())* 10 + 1;

Bien sûr, cela vous fera perdre le nombre aléatoire courant calculé. Par conséquent, vous devez probablement créer une autre variable sumTime qui stockera la somme de toutes les valeurs time.

+0

Cela vous donnerait un mauvais temps au tour à chaque itération> 1. –

+0

Correct. J'ai édité ma solution pour mentionner que créer une nouvelle variable serait une bonne idée. Comme le tien par exemple :) – linuxuser27