Нужда от помощ по задача от домашното на C++ Fundamentals 04. Most Frequent number
Здравейте,
това е кодът който използвам https://pastebin.com/69u4MU05 . При мен работи и не мога да разбера какъв точно импут дава Judge, за да даде кода ми грешен изход. Опитах много МНОГО различни неща и не мога да си обясня, къде точно е грешката. Тук е последната ми надежда
Много благодаря!
оказа се, че на моя комилатор, като излизам от границите на масива ми дава случайна стойност в хилядите и не афектира крайния резултат. Но в системата Judge явно дава 0-ла, която може би се засича с входящите данни ( 0 1 2 3 4) и обърква нещата.
Отново благодаря !
Не вярвам това да е бил проблема, защото щяха да гърмят всички тестове, а не само първия. По принцип може да се прочете адрес в паметта, който е извън границите на масива (например arr[size+1]). Обаче ако се опиташ да промениш тази стойност, тогава най-вероятно ще гръмне (това зависи от компилатора - майкрософтския компилатор е по-стриктен и програмата винаги гърми, за разлика от gcc, който се използва в джадж). Иначе много сложно си направил решението. Числата могат да бъдат само в границите от 0 до 9, така че може просто да си направиш един масив arr с големина 10 и при четенето на вх. данни да преброиш колко пъти се среща всяко число, т.е. ако прочетеш 3, увеличаваш arr[3] с 1. След това обхождаш този масив и намираш най-голямото число в него, т.е. най-често срещаното число (може да са няколко на брой). И накрая минаваш още веднъж през масива и ако arr[i] е равно на това максимално число, отпечатваш индекса i. Това е всичко което ти трябва.
Единствено промених едно от условията да не работи когато стойността на едната ми променлива беше извън масива и това ми даде 100-те точки. Иначе и аз не съм доволен как ми се получават задачите с масиви... практика и ще се ичистят (надявам се)