Въпрос относно 2-ра задача от 5.03 вечерен изпит


0
Реално съм правил сутрешния изпит, но няма как да си тествам кода на него, понеже не е отворен за практикуване. Вечерният е еквивалентен, затова ползвам него. Въпросът ми е защо когато се използва масив от тип int се получават 70 точки (пример), а с масив от тип long се получават 100 точки(пример), при положение, че числата са в интервал -2 000 000 000 до 2 000 000 000. На всичкото отгоре и в двата случая имаме int.Parse. Съжалявам ако въпросът ми е елементарен, но бих искал да получа отговор.




Отговори



0

Аз имам същия въпрос. Зададох го вчера и ми отговориха "колко е 2 00 000 000 - - 2 000 000 000?"

Което не ми изглежда правилен отговор тъй като int [] numbers се използва само за четене на данните, а сумирането става в друга променлива от тим long. Проверих входния тест 07 и на пръв поглед не намерих входни данни по-големи от 2 000 000 000 или - 2 000 000 000. Интересно къде бъркам.


от acennn (5 точки)


1
Не съм решавал изпита, но - ако сумираш два int-a и се опитваш да ги присвоиш отляво на long - то това не значи, че ще имаш коректен резултат. Първо ще се evaluate-нат те като integer-и - евентуално ще стане препълване и чак тогава ще бъде направен опит да бъдат записани в long променливата. Може оттам да идва. Решение на това е навсякъде да ползваш long или при събирането да кастваш нещата, които събираш.

от staccobain (834 точки)

0
Благодаря, ясно какъв е бил проблема.

от GGarabedian (300 точки)