В C # я объявил массив с плавающей точкой в main ()
float[] notas = new float[8];
Вызвал метод и передал массив по ссылке также в main ()
PopulateArray(ref notas);
Вот реализацияметода PopulateArray (ref float [] arr1)
static void PopulateArray(ref float[] arr1)
{
bool vakid;
for (int i = 0; i < arr1.Length; i++)
{
do
{
do
{
Console.Write($"Insira nota {i + 1} ==>");
vakid = float.TryParse(Console.ReadLine(), out arr1[i]);
if ((arr1[i] > 20.0) || (arr1[i] < 0.0))
{
Console.Write("\n\n\t\tAs notas só vão de 0 a 20\n\nPrima uma tecla para continuar");
Console.ReadKey();
}
Console.Clear();
}while (!((arr1[i] <= 20) && (arr1[i] >= 0)));
} while (!vakid);
}
}
Использовал два цикла, один для того, чтобы гарантировать, что введенное значение находится между [0, 20], и другой, чтобы гарантировать, что любой ввод является десятичным числом (плавать).До этой реализации массив notas имел целое число , и все работало просто отлично, допускались только целые числа , а также между интервалами [0, 20].Когда я решил изменить тип данных на float , всякий раз, когда я набираю десятичное число (т. Е. 3,0), оно не проходит через внешний цикл, как если бы я печатал символ, отличный от числа,так же, как когда я печатаю письмо.Так как же я могу ввести десятичные числа для хранения в моем массиве?Ty