2015-09-18 4 views
-2
int sum; 
int display;    

Console.Write("Enter three whole numbers:"); 

display = int.Parse(Console.ReadLine()); 
Console.Write(display); 
Console.ReadKey(); 

Как вычислить сумму вместе с отображением чисел i, введенных в эту же строку? Eg.input: 123 Решение: 123 = 6Отображение суммы из трех цифр с ввода и отображения трех чисел в одной строке

+0

' 123' - это один номер, а не 'три целых числа' –

+0

1 и 2 и 3 - все целые числа = 3 целых числа. –

ответ

1
string str = Console.ReadLine(); 
sum = SumOf(str); 

public static int SumOf(string s) 
{ 
    int sum = 0; 
    foreach (char num in s.ToCharArray()) 
    { 
     sum += (int)char.GetNumericValue(num); 
    } 
    return sum; 
} 

Для использования с кодом:

int display = 0;    

Console.Write("Enter three whole numbers:"); 

string s = Console.ReadLine(); 
foreach (char num in s.ToCharArray()) 
{ 
    display += (int)char.GetNumericValue(num); 
} 
Console.Write("Sum of " + s + " = " + display); 
Console.ReadKey(); 
+0

Я понятия не имею, как реализовать это в своем коде, чтобы попробовать, я новичок. –

+0

@TDOTL исправил его для вас. – kevintjuh93

+0

Я попробовал, и один я запустил его, он вернулся с ошибкой 21, не назначенная локальная переменная 'display' ) –

2
string input = Console.ReadLine(); 
sum = input.ToCharArray().Select(x => int.Parse(x)).Sum(); 

Вы можете сделать его более надежным, используя TryParse и строительство в подстраховки, но это до вас.

+0

Обратите внимание, что использование 'Linq' для такого рода простых вещей делает код намного менее удобочитаемым. Как правило, вам не следует искать 'string' как' IEnumerable', если вам не нужно по той же причине. –

+0

Посмотрите на «Линк» Дмитрия, он длиннее, но гораздо читабельнее. –

+0

@ Some1Pr0, поэтому я конвертирую его в char [] и не использую необработанную строку. Кроме того, ответ dmitry не отвечает на вопрос, не работает с предоставленным вводом, и в конечном итоге, глядя на них, это то же самое, что и мое. –

2

Ваш вопрос путается, вы предлагаете пользователю ввести Enter three whole numbers:, а в вашем примере вы указали 123 в качестве входных данных. будь то три целых числа? нет. если вопрос описывает ваши потребности, то вы должны кодировать так:

int a,b,c,sum;   
Console.Write("Enter three whole numbers:"); 
a= int.Parse(Console.ReadLine()); 
b= int.Parse(Console.ReadLine()); 
c= int.Parse(Console.ReadLine()); 
sum=a+b+c; 
Console.Write("sum={0}",sum); 
Console.ReadKey(); 

Если требование описано в примере, то ваш код должен быть изменен так:

Console.Write("Enter three whole numbers:"); 
int sum= Console.ReadLine().Sum(c => c - '0'); 
Console.Write("sum={0}",sum); 
2

Ну, как вы хотите, чтобы пользователь вводил, скажем, 123, 45 и 6? С 123456 можно прочитать в различными способами, например. 123456? я предпочел бы

Console.Write("Enter integer numbers to sum up, separating them by comma"): 

    int result = Console 
    .ReadLine() 
    .Split(',') 
    .Select(item => int.Parse(item)) 
    .Sum(); 

    // test: 123, 45, 67 => 235 
    Console.Write(result); 
    Console.ReadKey(); 

В случае, если вы хотите, чтобы суммировать все цифр в данной строке

Console.Write("Enter the numbers which digits you want to sum up"): 

String source = Console.ReadLine(); 

int result = source 
    .Select(item => item - '0') 
    .Sum(); 

// test: 12345 => "12345 = 15" since (1 + 2 + 3 + 4 + 5 = 15) 
Console.Write(String.Format("{0} = {1}", source, result)); 
Console.ReadKey(); 
+0

Отображает только три числа, введенные в следующую строку, не отображает сумму трех + три числа, введенных вместе –

+0

Только другой код Отображает сумму, а не вместе с тремя введенными цифрами –

+0

@TDOT L: если вы хотите * отформатированный * output, то есть '' 12345 = 15 "', тогда используйте 'String.Format()': см. мое редактирование –