Loading...
R.Ilkova avatar R.Ilkova 4 Точки

Проблем със задача "Bonus Score"

Здравейте,

проблемът е , че когато пусна кода на задачата в judge, той ми дава 70/100 и като грешка (поне доколкото разбрах) ми казва че липсва дробната част при пресмятането. Опитах се да сложа Math.Round, но нещо не се справих. Та въпросите са: само това ли е грешката в кода и как в този случай да добавя Math.Round така че да се показва и дробната част.

Благодаря!

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BonusScore
{
    class TotalBonusScore
    {
        static void Main(string[] args)
        {
            Console.Write("Enter score: ");
            var num = int.Parse(Console.ReadLine());
            var bonusScore = 0.0;
            if (num <= 100)
                bonusScore =  5;
            else if (num > 100 && num <=999)
                bonusScore = (num * 20) / 100;
            else if (num > 1000)
                bonusScore = (num * 10) / 100;
            if (num % 10 == 5)
                bonusScore += 2;
            else if (num % 2 == 0)
            {
                bonusScore += 1;
            }

            Console.WriteLine("Bonus score: {0}", bonusScore);
            Console.WriteLine("Total score: {0}", num + bonusScore);
            


        }
    }
}
 

Тагове:
1
Programming Basics
DimitarKarev avatar DimitarKarev 87 Точки
Best Answer

сменяш  int  с double на var num = int.Parse(Console.ReadLine()); и дава 100 точки 

1
R.Ilkova avatar R.Ilkova 4 Точки

БЛАГОДАРЯ!

Аз търсех проблема само в липсата на Math.Round.

1
DimitarKarev avatar DimitarKarev 87 Точки

Math.Round щеше да направи обратното на това което ти искаш то закрагля т.е. 2.3 ще ти даде 2. Проблема при теб беше че когато влезнеш във

                else if (num > 100 && num <=999)
                bonusScore = (num * 20) / 100;
                else if (num > 1000)
                bonusScore = (num * 10) / 100;

изхода ти е int т.е. отрязва част от резултат-а. Друг fix е да направиш 100 на 100.0 и така bonusScore ще е double и няма да има отрязване.

1
jivako000 avatar jivako000 296 Точки

Здравей! Можеш да погледнеш и моето решение 

http://pastebin.com/ghZKk8X1

Ако имаш някакви въпроси, винаги ще помагаме! Успехsmiley

0
R.Ilkova avatar R.Ilkova 4 Точки

Благодаря за бързите отговори! Грешката ми наистина е много глупава пък и явно нещо като цяло не съм разбрала, защото си мислех че Math.Round (num, 2)  ще закръгли на втория знак след десетичната запетая. 

1
jivako000 avatar jivako000 296 Точки

Радваме се, че си успяла да решиш проблема. Мога ли да те помоля, ако моето решение ти е било полезно, да сложиш на коментара ми по - горе Best answer? 

Успех! smiley

-5
Leprikona avatar Leprikona 108 Точки

Проблемът е, че не добавяш бонус точките към резултата (bonusScore). Трябва да използваш знака "+=", който добавя дясната част на равенството към лявата;

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.