2017-03-26 3 views
-1

私は絶対に立ち往生しています。C#配列内の値を確認する

まず第一に、ここに私のコードは、これまでのところです:

int i; 
int x = 0; 
int b = 0; 
Console.Write("\nHow many stocks to enter price for:\t"); // enter size of array 
int size = int.Parse(Console.ReadLine()); 
double[] arr = new double[size]; // size of array 

// Accepting value from user 
for (i = 0; i < size; i++) 
{ 
    Console.Write("\nEnter price for stock #{0}: \t", ++x); 
    //Storing value in an array 
    arr[i] = Convert.ToDouble(Console.ReadLine()); 
} 

Console.WriteLine("\n\n"); 

//Printing the value on console 
for (i = 0; i < size; i++) 
{ 
    Console.WriteLine("Average Price: " + arr.Average() + " out of {0} stocks", x); 
    Console.WriteLine("Minimum Price: " + arr.Min()); 
    Console.WriteLine("Number of stocks priced between 1.5-35: " + b); 
} 

Console.ReadLine(); 

申し訳ありませんが、私は色を追加する方法については非常によく分かりません。 とにかく、私はここでは、この行に示さ1.5と35の間の価格の株式の数を表示するに引っかかっています:Console.WriteLine("Number of stocks priced between 1.5-35: "+ b);

基本的には、それがために価格を入力する株式の数を要求します。これにより、配列のサイズが決まります。次に、ユーザーは株式の価格を最初に設定したx倍にする。したがって、株式の平均価格を計算すると、最低価格は1.5と35の間で値段付けされた株価の数です。

また、私はこれを自分自身で把握できると確信していますが、何らかの理由で結果が2回ずつ表示されています。それについてもあまりよく分かりません。

私はこれも長すぎるためにこれに固執しているので、どんな助けもありがたいです。

+0

をした後、インクリメント ' b。あなたの出力はループに入れているので、複数回印刷されます。あなたの出力の周りの 'for()'ブロックを削除すれば正常に動作します。 – Rob

答えて

1

Hello @nullcat @Robが提案するように、最後のループを修正する必要があります。また、変数bが割り当てられることはありませんので、私は、文のための

for (i = 0; i < size; i++) 
    { 
     //Check if the stock on index i is between 1.5 and 35 and add 1 to the variable b 
     if(arr[i] >=1.5 && arr[i] <=35.0){ 
      b++ 
     } 
    } 
    //Printing the value on console 
    Console.WriteLine("Average Price: "+ arr.Average() + " out of {0} stocks", x); 
    Console.WriteLine("Minimum Price: "+ arr.Min()); 
    Console.WriteLine("Number of stocks priced between 1.5-35: "+ b); 
    Console.ReadLine(); 

それをチェックしてくださいことを確認するために追加1.5と35との間を付けられる株式の数を持っていると私に知らせていないあなたわずかに短い代替ソリューション提供にコメント

+0

BTWこのコードは、 'Console.WriteLine(" \ n \ n ");' – 3vts

1

:単に ``場合(価格は> = 1.5 &&価格<= 35)を行い、株式の価格に読んだ後

static void Main() 
{ 
    int x = 0; 
    Console.Write("\nHow many stocks to enter price for:\t"); 
    int size = int.Parse(Console.ReadLine()); 
    double[] arr = new double[size]; 

    for (int i = 0; i < size; i++) 
    { 
     Console.Write($"\nEnter price for stock #{++x}: \t"); 
     arr[i] = Convert.ToDouble(Console.ReadLine()); //Storing value in an array 
    } 

    Console.WriteLine($"\r\nAverage Price: {arr.Average()} out of {arr.Count()} stocks"); 
    Console.WriteLine($"Minimum Price: {arr.Min()}"); 
    Console.WriteLine($"Number of stocks priced between 1.5-35: " + 
     $"{arr.Where(v => v >= 1.5 && v < 35).Count()}"); 

    Console.ReadLine(); 
}