[Homework] C# Basics - Console Input/Output
Лекцията може да не е минала, но щом ни пуснаха домашното трябва да го налазваме - ще е полезна темата за тези, които са имали повечко време и са стигнали до тук и са си прочели презентацията.
1. Sum of 3 Integers (Уж integers, а пък в примерите дробни числа.. тогава и ние няма да се ограничаваме до целочислени)
2. Print Company Information (правя всички телефонни номера стрингове, защото не знаем в какъв формат евентуално биха ни ги подали)
3. Circle Perimeter And Area (решение от Lyubo)
5. Formatting Numbers (решение от Lyubo)
6. Quadratic Equation (решение от Lyubo)
7. Sum of 5 Numbers (не мога да измисля по-лесно решение в момента)
11. Numbers in interval dividable by given number (може да се оптимизира като се намери първият търсен елемент и после се прескача през 5 и още 1-2 проверки)
12. //TODO
Проблемът е малко по странен за обясняване, накратко проблемът идва от факта че масивът с резултата ти е по голям от колкото трябва да е, и екстра битовете по подразбиране са напълнени с null terminator-и, като ги сортираш null terminator-ите отиват отпред и понеже конзолата не знае как да ги отпечата отпечатва празни места вместо тях. Прегледах всички решения на задачата са направени с лист за резултат вместо с масив, просто е по лесно така, алтернативата би била да се печатат елементите на масива 1 по 1 като с проверка да се изпускат ако са null terminator '\0'. Но докато сме на въпроса 2рите цикли в right exclude и left exclude не ти трябват, ти не ги използваш никъде реално, също така понеже резултата е само 1 може да изнесеш и сортирането и печатането след if/else -овете.
Здравей,
Резултатния масив в случая с 11 елемнта,точно колкото са о елементите от първия масив, като броим и интервала от стринга "LKMDaswq|X "...
Не съм сигурна ,че разбирам - в случая този интервал се приема като "null"?
Не, спейса си работи както трябва просто екстра 3те места в масива които не са запълнени правят проблема резултатният ти масив е с 11 елемента, очакваният отговор е " DKLMqsw" което е 8 елемента, но при тебе масива изглежа така "\0\0\0 DKLMqsw", тези нули са null terminator-и, но понеже не са предвидени за печатане конзолата като не знае какво да ги прави печата спейсове на техните места което измества полученият ти резултат до " DKLMqsw" 11 елемента (имаш все едно 3 паднати спейса отпред). Това разбира се не е верният отговор затова теста гърми. Решението на проблема без да изменяш много решението си е да печаташ елементите 1 по 1 като имаш проверка дали елемента не е \0, ако е го пропускаш примерно така:
for (int i = 0; i < arrResult.Length; i++)
{
if (arrResult[i] != '\0')
{
Console.Write(arrResult[i]);
}
}