valio96
-1 Точки
maya_ip
28 Точки
Грешката ти е в начина, по който сравняваш стринговете. Изполва се str1.CompareTo(str2)>=0, за да разбереш дали първия стринг е по-голям от втория. Погледни това https://pastebin.com/wF3yPD6y
Добре де нали и по двата начина било то str1.Lenght > str2.Lenght или str1.CompareTo(str2)>=0 връщат числа, които се сравняват. Каква е разликата между едното и другото тогава?
Е, това че връщат числа, не означава че връщат еднакви числа... Това, че дължината на два низа е еднаква, не означава, че низовете са еднакви. Например Pesho и Gosho.
str1.CompareTo(str2)>=0 проверява и по азбучен ред низовете, а str1.Lenght връща число, което е дължината на стринга.
А и аз да попитам понеже не е дадено какво да прави при равни стрингове как трябва да се форматира отговора ?
firstString + " " + secondString
или
firstString
secondString
?
Не би ли трябвало просто един от двата елемента, без значение кой
При равни (еднакви) стрингове печаташ пак първия. Те са еднакви. Нямаш в условието изрично изискване за изход при str1.CompareTo(str2)=0. Е, може и втория, то е въпрос на предпочитание вече и още писане.
Със str1.CompareTo(str2) сравняваш лексикографски (числените стойностти на всеки символ в ASCII- таблицата от всяка двойка символи на двата стринга поотделно). Например, ако имаш два стринга "Мария" и "Марче", се сравняват първо първите символи 'М' и 'М' . Двата символа са еднакви, затова сравнението продължава със следващия символ 'a' и 'a' , докато не се стигне до два символа, които са различни ('и' и 'ч'), или докато не свърши единият от двата стринга.
Със str1.Lenght > str2.Lenght сравняваш дължината (броя на символите във всеки стринг) на двата стринга.