[Homework] C# Basics - Console Input Output Homework - Problem{14} - Sum of Elements
Задачата е Problem 14.Sum of Elements(Console Input Output Homework), задача 2 от изпита провел се на 11/04/2014 morning
Колеги имам следния проблем,когато подам решението на задачата към Judge системата ми дава 83/100 като грешни са тест 11 и 12.Изтекоха ми очите да се взирам и да се опитвам да намеря грешката.От опит знам, че Judge системата дава грешка дори и за нещо минимално на входа или изхода,но в този случай незнам.Бихте ли ударили едно рамо.
П.С: Направих поправка благодарение на knoteva, сега sum и diff са от тип long и задачата дава 100/100 в Judge системата.
Реалните числа без проблем могат да държат в себе си цели числа. Целите са подмножество на реалните.
и аз така знам но по някаква причина като ги сложа тип double или float ми крашва и не ми излиза нищо.. същото е и положението когато напр трябва да въведа поредица от числа на конзолата.. иска ми ги пр.:
1
2
3
и ако напиша
1 2 3
ми крашва.. най вероятно е проблем със visual studio.. грешни настройки или нещо такова
Ако ги въвеждаш на един ред нормално да гърми - опитваш се да парснеш стринга "1 2 3" към число, а то не е такова. Дай някакъв код да видим по-точно какво имаш предвид.
Сега като погледнах видях че всичко си работи правилно :D A за въпроса със въвеждането.. В последно време учих масиви на C++ и там могат да се въвеждат на един ред..от там съм се объркала..
Благодаря за бързия отговор :)
В C# също можеш да ги въведеш на един ред, нещо такова (извинявам се предварително за имената на променливите):
string input = Console.ReadLine();
string[] myArr = input.Split(' ');
Това ще вземе входа от конзолата, ще го раздели по празните места и ще запише резултата в масива myArr.
Така, ако въведеш:
1 2 3
Ще имаш като резултат масив от стрингове с елементи 1, 2 и 3. В последствие можеш да си го обърнеш на масив от int.
Може да го направиш и по следния начин:
string[] input = Console.ReadLine().Split(' '); //взима входа от конзолата, дели по празни места и пълни масива от стрингове
int[] arr = Array.ConvertAll(input, int.Parse); //обръща всички елементи на масива input в int и ги присвоява на масива arr
Разбира се, по прилежно е първо да си запазиш входа от конзолата в string, после да го Split-неш и да декларираш стринговия масив и чак след това да направиш конверсията в целочисления масив.
На мен лично ми харесва и малко по-гъзарския вариант:
string[] input = Console.ReadLine().Split(' ', '\t', '\n'); //така ако въведеш повече празни места между елементите на входа или сложиш табулация или нов ред също ще го приеме като валиден вход.