Софтуерно Инженерство
Loading...
+ Нов въпрос
desislava777 avatar desislava777 163 Точки
Best Answer

Здравей. Твоето решение е на C#. Искам да ти обясня нещо: Писал си

.................

      else if (num > 100)
            {
                bonusScore = num * 0.20;
            }
            else if (num > 1000)
            {
                bonusScore = num * 0.10;
            }

....................... Когато num>100 това значи, че се приемат стойности по-големи от 100, без да има посавена някаква горна граница. С други думи изискването num>1000 се съдържа в изискването num>100. За това трябва да се постави горна граница т.е. записът трябва да бъде така:

 else if (num > 100 && num<=1000)
            {
                bonusScore = num * 0.20;
            }
            else if (num > 1000)
            {
                bonusScore = num * 0.10;
            }

Освен това на bonusScore му даваш тип double и първоначална стойност 0, а не 0.0. Това е твоят код, променен така, че да дава 100 точки:

https://pastebin.com/EK9TZM51

0
bossplayaz avatar bossplayaz 2 Точки

Благодаря много, целият проблем е че трябваше да огранича if-а с 20-те % до <= 1000 :)

П.С. имам предвид JS - Judge System, но явно не е правилно да го използвам че се бъркате :)

0
22/10/2017 13:48:31
dvdty avatar dvdty 472 Точки

Не мисля, че това е JS.

0
boqnyordanov1 avatar boqnyordanov1 3 Точки

Тук въведох малка промяна в кода при конструкцията if-else условието за изпълнение на бонус при точки които са повече от 1000 нямаше как да се изпълни понеже винаги се спираше на по горната проверка.

https://gist.github.com/BoyanYordanov01021108/10fa2077406b9ae4a606d2371b8b03d2

0
boykopk avatar boykopk 146 Точки

Трябва да почнеш с >1000 защото при >100 не можеш да влвзеш в >1000 и ти дава бонус 20%, а не 10%.

0
Ekaterin avatar Ekaterin 135 Точки

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

namespace BonusPoints
{
    class Program
    {
        static void Main(string[] args)
        {
            double number = double.Parse(Console.ReadLine());
            double bonusPercents = 0;
            double bonusFromLastDigitOrEven = 0;
            if (number <= 100)
            {
                bonusPercents += 5;
            }
            else if (number > 100 && number <= 1000)
            {
                bonusPercents = (number * 0.2);
            }
            else if (number > 1000)
            {
                bonusPercents = (number * 0.1);
            }
            if (number % 2 == 0)
            {
                bonusFromLastDigitOrEven = 1;
            }
            else if (number % 10 == 5)
            {
                bonusFromLastDigitOrEven = 2;
            }
            Console.WriteLine(bonusPercents + bonusFromLastDigitOrEven);
            Console.WriteLine(bonusFromLastDigitOrEven + bonusPercents + number);
        }
    }
}
 

0
Ekaterin avatar Ekaterin 135 Точки

Но като гледаш решенията ги дебъгваи.

Защото иначе нищо не се научава.

0