Протокол на сайте выдаёт "Ошибка во время выполнения программы"
Задача:
В массиве вещественных чисел размером в 30 элементов задан вес спортсменок одной команды (в килограммах с округлением до десятых). Опишите на русском языке или на одном из языков программирования алгоритм подсчёта количества спортсменок, чей вес превышает 50 кг, но не превышает 57 кг. Если таких спортсменок нет, выведите "NO".
Моё решение:
double[] w = new double[30];
int a = 0;
for (int i = 0; i < 30; i++)
{
w[i] = Convert.ToDouble(Console.ReadLine());
}
for (int i = 0; i < 30; i++)
{
if (w[i] > 50 && w[i] <= 57)
{
a++;
}
}
if (a > 0)
{
Console.WriteLine(a);
}
else
{
Console.WriteLine("NO");
}
Console.ReadKey();
Выдается эта ошибка. Как это исправить?
Ответы (1 шт):
Автор решения: Smeto
→ Ссылка
Решает Вашу проблему данный код:?
using System;
using System.Globalization;
class Program
{
static void Main()
{
double[] weights = new double[30];
int count = 0;
Console.WriteLine("Введите вес 30 спортсменок (кг, через Enter):");
for (int i = 0; i < 30; i++)
{
string input = Console.ReadLine();
if (string.IsNullOrEmpty(input))
{
Console.WriteLine("Ошибка: введите число!");
i--; // Повторяем ввод для этого элемента
continue;
}
input = input.Replace(',', '.');
if (!double.TryParse(input, NumberStyles.Any, CultureInfo.InvariantCulture, out weights[i]))
{
Console.WriteLine("Ошибка: введите число в формате 55.5 или 55,5!");
i--; // Повторяем ввод
continue;
}
}
for (int i = 0; i < 30; i++)
{
if (weights[i] > 50 && weights[i] <= 57)
{
count++;
}
}
Console.WriteLine(count > 0 ? count.ToString() : "NO");
}
}