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 раза каждый. Не слишком уверен в этом.
Любая помощь будет принята с благодарностью, так как я застрял на этом слишком долго.
2 ответа
Здравствуйте @nullcat, как подсказывает @Rob, вы должны исправить свой последний цикл. Кроме того, переменная b никогда не назначается, и поэтому у вас нет количества акций по цене от 1,5 до 35. Я добавил предложение, чтобы проверить, что
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();
Пожалуйста, проверьте это и дайте мне знать ваши комментарии
Чтобы обеспечить несколько более короткое альтернативное решение:
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();
}