Loading...
Bu7eRs avatar Bu7eRs 5 Точки

Зов за помощ от някое "гуру"

Здравейте, имам проблем със първата задача от тук https://csharp-book.softuni.bg/chapter-02-simple-calculations-exam-problems.html#simple-calculations ( учебна зала). Това с писането на кода които да решава дадените примери го постигнах обачее Judge системата ме наплю и ми даде 25/100 точки, въпросът е че не показва на кои тестове се е провалило и защо? https://judge.softuni.bg/Contests/Practice/Index/505#0 Ето го и кода :) 

 

    using System;

    namespace Square_Area
    {
        class Program
        {
            static void Main(string[] args)
            {
                double lenght = double.Parse(Console.ReadLine());
                double width = double.Parse(Console.ReadLine());
                double wpwidth = 70;
                double wplenght = 120;
                double lcm = lenght * 100;
                double wcm = width * 100;
                int walkway = 100;
                int door = 1;
                int carpet = 2;
                int RealWPW = Convert.ToInt32(lcm / wplenght);
                int REALWPL = Convert.ToInt32((wcm - walkway) / wpwidth );
                Console.WriteLine(REALWPL * RealWPW - (door + carpet));
            }
        }
    }
 

Тагове:
0
Programming Basics 06/05/2019 00:57:33
Iv_Konov avatar Iv_Konov 383 Точки
Best Answer

Добро утро,

 

Имаш няколко варианта за ... 100/100:

 

int  - премахва всичко след запетайката:

===

            int RealWPW = (int)(lcm / wplenght); // Convert.ToInt32(lcm / wplenght)
            int REALWPL = (int)((wcm - walkway) / wpwidth); // Convert.ToInt32((wcm - walkway) / wpwidth)

===

В случай че ползваш double на всички променливи - премахваш всичко след запетайката:

===

            double walkway = 100;
            double door = 1;
            double carpet = 2;
            double RealWPW = Math.Truncate((lcm / wplenght)); // Convert.ToInt32(lcm / wplenght)
            double REALWPL = Math.Truncate(((wcm - walkway) / wpwidth)); // Convert.ToInt32((wcm - walkway) / wpwidth)

===

или така:

===

            double RealWPW = Math.Floor((lcm / wplenght)); // Convert.ToInt32(lcm / wplenght)
            double REALWPL = Math.Floor(((wcm - walkway) / wpwidth)); // Convert.ToInt32((wcm - walkway) / wpwidth)

===


Това, което си избрал за решение, е най-любопитният вариант - Convert.ToInt32. За съжаление тази опция се равнява на Math.Round (закръглява) и връща цяла число:

 

https://stackoverflow.com/questions/1608801/what-is-the-difference-between-convert-toint32-and-int

 

"Also, note that on a numerical level, (int) foo truncates foo (ifoo = Math.Floor(foo)), while Convert.ToInt32(foo) uses half to even rounding (rounds x.5 to the nearest EVEN integer, meaning ifoo = Math.Round(foo)). The result is thus not just implementation-wise, but also numerically not the same."

 

Поздрави,

Иван

 

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