Loading...
DimitarMandarliev avatar DimitarMandarliev 2 Точки

Input/Output Console Problem 7

Write a program that enters 5 numbers (given in a single line, separated by a space), calculates and prints their sum.

Какво трябва да напиша като код за да мога всеки път след като въведа дадено число и натисна Enter да продължа да въвеждам по същия начин на същия ред?
0
Programming Basics
t.316 avatar t.316 137 Точки

За тази задача бих ти препоръчал да използаваш това:

int[] n = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();

Където:

int[] - означава, че създаваш масив от интове. След това четеш данните от конзалата с Console.ReadLine(). 

.Split(' ') - разделя прочетените данни, с каквото му кажем. В нашият случай с ' '.

Тъй като Console.ReadLine() връща стринг ни е нужно да превърнем всеки елемент в инт за да влезе в масива и за това използваме - .Select(int.Parse).

И накрая добавяме всеки от получениете елементи към масива чрез .ToArray().

За да можем да го направим трябва след using System; да поставим using System.Linq;.

Ако не си работил с масиви може да изглежда малко плашещо, но се свиква много бързо и е много удобно в подобни случай.

0
DimiturJeliazkov avatar DimiturJeliazkov 25 Точки

1  2  3  4

Unhandled Exception: System.FormatException: Input string was not in a correct f
ormat.
   at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffe
r& number, NumberFormatInfo info, Boolean parseDecimal)
   at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo in
fo)
   at System.Int32.Parse(String s)
   at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at Pairs.Pairs.Main(String[] args) in c:\Users\b\Documents\Visual Studi
o 2013\Projects\ForumTestPrograms\Pairs\Pairs.cs:line 14
Press any key to continue . . .

LINE 14.

int[] intArray = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();

0
18/06/2015 13:20:03
t.316 avatar t.316 137 Точки

Не съм сигурен, че разбирам коментара правилно, но предполагм, че имаш предвид, че при входни данни 1 2 3 4 ти дава грешка след като си използвал int[] intArray = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();.

Не знам, каква може да е причината.

Ето един тест на int[] intArray = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();, в който съм принтирал всички елементи от масива, всеки на нов ред:

http://pastebin.com/UuULMqsA

 

0
DimiturJeliazkov avatar DimiturJeliazkov 25 Точки

Така работи ако има точно по 1 спейс между числата :)

Сложи 2 спейса примерно или почни със спейс ...

Иначе входа в judge системата е строго регламентиран ... но ако някога имаш този проблем прочети за StringSplitOptions

0
t.316 avatar t.316 137 Точки

int[] n = Console.ReadLine().Split(new char[] {' '}, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToArray();

Така вече нямя да има проблем.

Знам как се използва StringSplitOptions.RemoveEmptyEntries, но исках да обясня на колегата възможно по-опростен и лесно разбираем начин за решаването на конкретната задача, където числата са разделени с точно един спейс. :)

0
19/06/2015 02:26:36
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.