С#. Как подсчитать цифры, введенные с ввода?

72
9

Это код, который умножает числа, вводит пользователя.

string x;
double t, s = 1;

Console.WriteLine("Enter some numbers: ");
Console.WriteLine("To finish, press Enter");
while ((x = Console.ReadLine()) != "")
{
t = Convert.ToDouble(x);
s *= t;
}
Console.WriteLine("The result is: {0}", s);
Console.ReadLine();

Он показывает результат в конце, но как заставить его показывать общее количество введенных чисел? Например: я ввожу 1, 2 и 3. Таким образом, общий счет равен 3.

спросил(а) 2020-04-04T02:12:00+03:00 6 месяцев, 3 недели назад
1
Решение
71

Полезно использовать TryParse, чтобы избежать исключения FormatException Char.IsDigit возвращает true, текущий char - это цифра (очевидно)

Пример:


string x;   
double t, s = 1;
int digitCount = 0;
Console.WriteLine("Enter some numbers: ");
Console.WriteLine("To finish, press Enter");
while ((x = Console.ReadLine()) != "")
{
if (!Double.TryParse(x, out t))
continue;
foreach (var c in x)
if (Char.IsDigit(c))
digitCount++;
s *= t;
}
Console.WriteLine("The result is: {0}", s);
Console.WriteLine("The count of digits is: {0}", digitCount);
Console.ReadLine();

ответил(а) 2020-04-04T02:27:41.611881+03:00 6 месяцев, 3 недели назад
71

string x;
double t, s = 1;
int count = 0;

Console.WriteLine("Enter some numbers: ");
Console.WriteLine("To finish, press Enter");
while ((x = Console.ReadLine()) != "")
{
t = Convert.ToDouble(x);
s *= t;
count++;
}
Console.WriteLine("The result is: {0}", s);
Console.WriteLine("The count is: {0}", count);
Console.ReadLine();

ответил(а) 2020-04-04T02:12:00+03:00 6 месяцев, 3 недели назад
59

Почему не переменная для счетчика?

    Console.WriteLine("Enter some numbers: ");
Console.WriteLine("To finish, press Enter");
int i=0;
while ((x = Console.ReadLine()) != "")
{
i++;
t = Convert.ToDouble(x);
s *= t;
}
Console.WriteLine("The result is: {0}", s);
Console.ReadLine();

ответил(а) 2020-04-04T02:12:00+03:00 6 месяцев, 3 недели назад
58

Вы должны подсчитать итерацию цикла для использования переменной счетчика:

int loopCounter=0;
while ((x = Console.ReadLine()) != "")
{
t = Convert.ToDouble(x);
s *= t;
loopCounter++;
}
Console.WriteLine("The count is: {0}", loopCounter);

ответил(а) 2020-04-04T02:12:00+03:00 6 месяцев, 3 недели назад
42

Вы можете попробовать подсчитать количество символов в строковом вводе (x). int temp = x.Length();

ответил(а) 2020-04-04T02:12:00+03:00 6 месяцев, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема