2010-09-13 59 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(); 
    } 
} 
} 

我想教自己的c#,但是這個問題真的讓我感到莫名其妙。我如何每次通過循環添加時間變量以獲得所有十圈的總和?任何幫助,將不勝感激謝謝:)在for循環中加上隨機生成的數字的總和

回答

3

如果我沒有得到你,你就需要引入新的變量,以保持總時間:

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

這樣簡單的事情....非常感謝:) – Chris 2010-09-13 23:04:04

+0

對不起,試圖使它很好,我也在編輯模式...我的壞但謝謝大家! – Chris 2010-09-13 23:05:00

+0

@Chris:通過單擊問題左側的向上箭頭感謝SO,並通過單擊最有幫助的問題旁邊的複選標記來接受答案。 – 2010-09-13 23:07:14

2

您需要包括time在以前的價值你加成。

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

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

當然,這將導致你失去當前計算的隨機數。因此,您應該創建另一個變量sumTime,它將存儲所有time值的總和。

+0

這會讓您在每次迭代> 1時錯誤的每圈時間。 – 2010-09-13 23:04:04

+0

正確。我編輯了我的解決方案,提到創建一個新變量將是一個好主意。像你的例子:) – linuxuser27 2010-09-13 23:09:59