[Homework] C# Basics Conditional Statements Problem 11 Number As Words
Здравейте колеги,
Направих наистина интересната 11-та задача от домашното от лекцията по условни конструкции.
Ето и решението ми: http://pastebin.com/W5LVKBZJ
Здравейте колеги,
Направих наистина интересната 11-та задача от домашното от лекцията по условни конструкции.
Ето и решението ми: http://pastebin.com/W5LVKBZJ
Здравей,
Задачката наистина е интересна. Виждам, че си си поиграл/а доста.
Аз доста се забавлявах на тази задача, признавам. Опитах се да я направя колкото може по-динамична без много хардкодване и мисля, че се получи добре.
Може да видиш моето решение: http://pastebin.com/FqcSjEvc
Както може да се види, моето е доста дълго, поради факта, че имам някакви по-специални проверки за input-а, което бих те посъветвал да се опиташ да направиш и ти :) за да няма изненади когато някой вкара "3214534425633фсддфгдсф124" примерно.
При теб виждам, че в последния масив имаш хардкоднати стойностите на стотиците, което мисля, че може да се избегне, ако просто вземеш стойността от първият масив digits и просто добавиш стринг "hundred" на изхода :)
Примерно: return digits[hunds] + " hundred";
Също така може да слееш първите два масива - digits и tenToTwenty. Защо им е да са разделени :) Правиш масив от 0 до 19 и след това проверяваш дали въведеното число е от 0 до 19 и му принтираш името - return nums0to19[num];
Това е просто съвет от моя страна :)
Поздравления за задачката!
Cheers :)
На 21 ред при индексацията на "twentyToHundred[(number / 10) - 2]" това (-2) прави объркване и при 99 връща seventy nine.
Навсякъде проверяваш под или над 100 и когато зададеш 100 не връща нищо.
При числата над 20 когато последната цифра е нула връща и нула. При 900 дава резултат nine hundred and zero.Може да го избегнеш чрез if(number == 0). Резултат zero трябва да връща само при стойност на въведеното число 0.
А това е мойто решение заради темата Conditional Statements използвах "if" и "switch" конструкции
http://pastebin.com/J8XAFDQP
Здравей колега,
Интересно решение :) Доста IF - ове, но все пак се упражняваме върху Conditionals, така че, goo job :)
Cheers :)
Колега чудесен код! Само една дребна забележка, ако се въведе 001 програмата дава отговор and one. Предлагам едно съвсем дребно подобрение, примерно някъде след проверката на парсването:
string nn = "";
for (int i = 0; i < number.Length; i++)
{
if ((number.Length > 1) && (number[0] == '0'))
{
for (int j = 0; j < number.Length - 1; j++)
{ nn += Convert.ToString(number[j + 1]); }
}
if (nn != "") { number = nn; }
nn = "";
}
Благодаря не бях го тествал с 001.
Ще го прегледам :)
Ето едино решение и от мен http://pastebin.com/CYa5Z9ZP
Здравей колега,
Гледам, че си се постарал, поздравления за старанието :)
Сега и малко градивна критика :)
Копирах кода ти, пуснах го и хоп - от 100 нагоре (примерно 111) гърми ето тук: hundreds = ones[number / 100] + "hundreds";
След няколко теста забелязах, че всъщност не трябва да е once[], а трябва да е onceArr[] както ти се казва масива с единиците. Ако си го предал така, поправи го и го качи наново, докато имаш време :) Също така форматирай малко стринга за да не излиза "onehundreds and eleven", а да си е както трябва - "One hundred and eleven" :)
Също така, можеш да помислиш как да го раздробиш на отделни методи за да не е толкова объркващо. Има доста nested IFs, което прави кода доста неразбираем.
Поздравления отново и успех!
Cheers :)
Мнооого красиво написана и перфектно документирана програма. Останах без думи. Браво...
Благодаря :)