Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

V.Ivanova111 avatar V.Ivanova111 6 Точки

07.Choreography - от Условни конструкции -Упражнение - какво не е наред? - защо не излизат вярно процентите?

namespace _07._Choreography
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            int brDancers = int.Parse(Console.ReadLine());
            int brDni = int.Parse(Console.ReadLine());
            int brStypkiForOne = n / brDancers;
            double obshtBrStnaDen = n / brDni;
            double obshtProcentStNaDen = (obshtBrStnaDen / n) *100;
            double procentStZaDancer = obshtProcentStNaDen /brDancers;
            if (obshtProcentStNaDen <= 13)
            {
                Console.WriteLine("Yes, they will succeed in that goal! {0:f2}%.", procentStZaDancer);
            }
            else
            {
                Console.WriteLine("Not, they will not succeed in that goal! Required {0:f2}% steps to be learned per day.", procentStZaDancer);
            }
        }
    }
}

Тагове:
0
Programming Basics
chrisi2712 avatar chrisi2712 272 Точки
Best Answer

Здравейте, разгледах вашето решение и го поправих. Сега е 100/100. Когато изчислявате броят стъпки на ден, трябва да умножите стъпките първо по 1.0, за да ги превърнете в десетични и да получите резулатат  double:

   double obshtBrStnaDen = 1.0*n / brDni;
 double obshtProcentStNaDen = Math.Ceiling((obshtBrStnaDen / n) *100);

 

След това когато намирате процента стъпки на ден използвайте Math.Ceiling.

using System;

namespace Choreography
{
    class Program
    {
        static void Main(string[] args)
        {
            
            int n = int.Parse(Console.ReadLine());
            int brDancers = int.Parse(Console.ReadLine());
            int brDni = int.Parse(Console.ReadLine());
            int brStypkiForOne = n / brDancers;
            double obshtBrStnaDen = 1.0*n / brDni;
            double obshtProcentStNaDen = Math.Ceiling((obshtBrStnaDen / n) *100);
            double procentStZaDancer = obshtProcentStNaDen /brDancers;
            if (obshtProcentStNaDen <= 13)
            {
                Console.WriteLine("Yes, they will succeed in that goal! {0:f2}%.", procentStZaDancer);
            }
            else
            {
                Console.WriteLine("No, they will not succeed in that goal! Required {0:f2}% steps to be learned per day.", procentStZaDancer);
            }
        }
    }
}

 

0
Filkolev avatar Filkolev 4482 Точки

Имаш една грешка на изхода - "Not," -> "No,"

Променливата brStypkiForOne не я ползваш никъде.

Пропускаш да вземеш предвид и следното изречение от условието: "При изчисляване на процента стъпки на ден, числото трябва да се закръгли към най - близкото цяло число нагоре."

Имената на променливите са доста лоши. Ако английският ти е сериозен проблем по-добре ги пиши на български (т.е. кирилица) или ползвай google translate - може да не е идеален превод, но ще е достатъчно разбираем най-вероятно. И избягвай съкращения, освен ако не са широко приети; такива са примерно index -> idx, minimum -> min и други. Нищо не се печели със съкращаванията.

0
JoroTanch avatar JoroTanch 0 Точки

Имам проблем със закръглянето в тази задача. Като сложа Math.Ceiling за StepsPerDancerInPercent, съответно 0,48% (от изхода) не го закръгля до 0,50%, а до най-голямото цяло число 1,00% и естествено judje не го приема. Това е кодът, може ли някой да ме насочи как да го  закръгля до 0,50%. https://pastebin.com/raw/HPm5jay9

Благодаря!

0
SofiaHara avatar SofiaHara 1 Точки

След доста мъки, аз си оправих кода. Мисля, че ако си оправиш тази част:

double totalStepsPerDay = (numberSteps / daysStudying) / numberSteps;  
double totalStepsPerDayInPercent = totalStepsPerDay * 100;  
double stepsPerDancer = (totalStepsPerDay / numberDancers); 
double stepsPerDancerInPercent = (stepsPerDancer * 100); 

ето така:

double totalStepsPerDay = (numberSteps / daysStudying) / numberSteps;  
double totalStepsPerDayInPercent = Math.Ceiling(totalStepsPerDay * 100);  //закръгляме до най-близкото цяло число нагоре процентът стъпки на ден, а не на човек.

double stepsPerDancerInPercent = (totalStepsPerDayInPercent / numberDancers);

би трябвало да ти се получи.

 

0
18/02/2019 10:36:51
Tspetrova avatar Tspetrova 125 Точки

Здравей, това е решението ми на Java, малко по-кратко е от твоето, дано помогне да се ориентираш :-) Успех

https://pastebin.com/ASc2RE6i

0
Lachezar.Ivanov avatar Lachezar.Ivanov 14 Точки

using System;
  И аз се поизмъчих..... Ето моето решение:

                  
public class Program
{
    public static void Main()
    {
        int steps = int.Parse(Console.ReadLine());
        int dancers = int.Parse(Console.ReadLine());
        int days = int.Parse(Console.ReadLine());        
        double totalPercentStepsDay = Math.Ceiling((double)(steps/days)/steps*100);
        double stepsDancer = totalPercentStepsDay / dancers;        
        if (totalPercentStepsDay < 13)
        {
            Console.WriteLine("Yes, they will succeed in that goal! {0:F2}%.", stepsDancer);
        }    
        else
        {
            Console.WriteLine("No, they will not succeed in that goal! Required {0:F2}% steps to be learned per day.", stepsDancer);
        }            
    }
}

0
BobiLazarov avatar BobiLazarov 7 Точки

Не знам дали вече не е късно но ето и мойто решение и то работи 100/100;

 

 

 

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

namespace Choreography
{
    class Program
    {
        static void Main(string[] args)
        {

            

           double steps = int.Parse(Console.ReadLine());
            double dancers = int.Parse(Console.ReadLine());
           double day = int.Parse(Console.ReadLine());

            double procentsofsteps = (steps / day)/ steps*100;
           // procentsofsteps /= steps;
            
           // procentsofsteps *= 100;

          // Math.Ceiling(procentsofsteps);

           double procentsstepsforevryone = Math.Ceiling(procentsofsteps) / dancers;

            if (procentsofsteps <= 13)
            {
                Console.WriteLine($" Yes, they will succeed in that goal! {procentsstepsforevryone:f2}%.");
            }
            else
            {
                Console.WriteLine($" No, they will not succeed in that goal! Required {procentsstepsforevryone:f2}% steps to be learned per day.");
            }
        }
    }
}
 

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