2015-06-25 2 views
0

Вот мой код. Я хочу, чтобы пользователи вводили любое количество удвоений непрерывно до 100 раз (может быть, сколько раз пользователь хочет, но меньше 100). Отобразить сумму всех введенных значений. В моем коде я не знаю, как разрешить пользователям вводить номера непрерывно (предположим, у вас будет цикл while). Спасибо большое!добавить цифры каждого двузначного числа

Console.WriteLine("Enter double"); 
    double.first = double.Parse(Console.ReadLine()); 

    while(first != 0) 
    { 
     Console.WriteLine("Enter double"); 
     int num = int.Parse(Console.ReadLine()); 
     double sum; 
     while(num != 0) 
      { 
      double ten = num/10; 
      double tenth = Math.Floor(ten); 
      double oneth = num % 10; 
      sum = tenth + oneth; 
      Console.WriteLine("{0}", sum); 
      break; 

      } 

     first = double.Parse(Console.ReadLine()); 

    } 
+0

Просто поместите точку останова на 'while' заявление и пройти через него. Кроме того, просмотрите инструкцию '' break'' (https://msdn.microsoft.com/en-us/library/adbctzc4.aspx) (полностью отличная от точки останова). –

+1

Это домашнее задание? – Kevin

+0

Непонятно, что вы просите. Когда я читаю «Отображать сумму всех значений, введенных отдельно и вместе», я думаю, что вы хотите суммировать все введенные удваивания (вместе), и вы хотите суммировать цифры каждого введенного двойника (отдельно). Это то, что вы просите? – Shar1er80

ответ

1

Отредактировано после комментария:

Хорошо, я все еще предполагаю, что это домашнее задание, но здесь основы ...

Я хотел бы сделать это в два этапа, ввод данных, то calcualtion.

Создать что-то, чтобы сохранить ввод в и счетчик цикла

var inputs = new List<double>(); 
var counter = 0; 

Теперь приходит вам в то время как петли для ваших входов ...

while(counter < 100) 
{ 
    var tempInput = 0.0D; 
    Double.TryParse(Console.ReadLine(), out tempInput); 
    if(tempInput == 0.0D) 
    { 
     // The user did not enter something that can be parsed into a double 
     // If you'd like to use that as the signal that the user is finished entering data, 
     // just do a break here to exit the loop early 
     break; 
    } 
    inputs.Add(tempInput); 
    // This is your limiter, once counter reaches 100 the loop will exit on its own 
    counter++; 
} 

Теперь вы можете просто выполнить calcualtions на значения, которые вы накопили ...

var total = 0.0D; 
foreach(var value in inputs) 
{ 
    total += value; 
} 

Теперь отобразите общее значение.

Имейте в виду, что существует множество способов сделать это, это всего лишь пример, который поможет вам преодолеть проблему приобретения данных.

1

Я хочу, чтобы пользователи не вводить любое количество дублей непрерывно до 100 раз (может быть, однако, сколько раз пользователь хочет, но меньше, чем 100).

Вам необходимо отслеживать 3 вещи.

  1. Следующий двойной.
  2. Бег всего.
  3. Сколько раз пользователь предоставил ввод.

Переменные:

double next; 
double runningTotal = 0; 
int iterations = 0; 

Теперь, чтобы непрерывно получать входные данные от пользователя, вы можете написать while-loop как вы правильно определили. В этом цикле вы должны проверить две вещи:

  1. То, что следующее значение является двойным, и что он не равен 0.
  2. То, что пользователь не предоставил вход более чем в 100 раз.

Хотя петля:

while (double.TryParse(Console.ReadLine(), out next) && next != 0 && iterations < 100) { 
    // Count number of inputs. 
    iterations++; 

    // Add to the running total. 
    runningTotal += next; 
} 

Показать сумма всех введенных значений.

Просто напишите на консоль.

Выход:

Console.WriteLine("You entered {0} number(s) giving a total value of {1}", iterations+1, runningTotal); 

Полный пример:

static void Main() 
{ 
    double runningTotal = 0; 
    double next; 
    var iterations = 0; 

    Console.Write("Enter double: "); 
    while (double.TryParse(Console.ReadLine(), out next) && next != 0 && iterations < 100) 
    { 
     runningTotal += next; 
     iterations++; 
     Console.Write("Enter double: "); 
    } 
    Console.WriteLine("You entered {0} number(s) giving a total value of {1}", iterations+1, runningTotal); 
    Console.Read(); 
} 
Смежные вопросы