Loading...
Maria_ls avatar Maria_ls 383 Точки

Coding 101 Exam - 06. march - 04.Histogram Моля за помощ

Здравейте!

Решавам ето тази задача https://judge.softuni.bg/Contests/Practice/Index/169#3 от примерните изпити.

Това е моят код https://dotnetfiddle.net/JPHzHj

Някой може ли да ми каже къде бъркам и защо не ми се увеличават борячите?

0
Programming Basics 24/06/2016 15:55:56
Alex0101 avatar Alex0101 374 Точки
Best Answer

Здравей,

 

Просто не ползваш правилния тип данни. 

Смени инт с double и ще изкараш 100/100. Реално кагота се иска нецяло число- число с плаваща запетая, се използва такъв тип данни . Когато декларираш каунтерите с double, пизволяваш да се запише и дребна част, получена при следващите пресмятания.

Пример

Ако имаш 

int a=3 и го разделиш целочислено на 2

a=a/2 = 1 . На практика губиш дробната част, заради типът инт , които е целочислин.

Ако, обаче double d=3  го разделиш на две ще получиш 1.5

Надявам се да съм бил полезен.

1
Maria_ls avatar Maria_ls 383 Точки

Много благодаря! Никога нямаше да се сетя, че точно това би била причината!

0
Devil96147 avatar Devil96147 0 Точки

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

namespace Histogram
{
    class Program
    {
        static void Main(string[] args)
        {
            double n = int.Parse(Console.ReadLine());
            int p1 = 0;     // pod 200
            int p2 = 0;     // ot 200 do 399
            int p3 = 0;       // ot 400 do 599
            int p4 = 0;       // ot 600 do 799
            int p5 = 0;       // ot 800 i nagore
            double p1sum = 0;
            double p2sum = 0;
            double p3sum = 0;
            double p4sum = 0;
            double p5sum = 0;
            for (int i = 1; i <= n; i++)
            {
                int numbers = int.Parse(Console.ReadLine());
                if (numbers < 200)
                {
                    p1++;
                    
                }
                else if (numbers >= 200 && numbers < 400)
                {
                    p2++;
                 
                }
                else if (numbers >= 400 && numbers < 600)
                {
                    p3++;
                    
                }
                else if ( numbers >=600 && numbers < 800)
                {
                    p4++;
                   
                }
                else if (numbers >= 800)
                {
                    p5++;
                  
                }
            }
p1sum += (p1 / n) * 100;
   p2sum += (p2 / n) * 100;
p3sum += p3 / n * 100;
 p4sum += p4 / n * 100;
  p5sum += p5 / n * 100;
            Console.WriteLine($"{ p1sum:F2}%");
            Console.WriteLine($"{ p2sum:F2}%");
            Console.WriteLine($"{ p3sum:F2}%");
            Console.WriteLine($"{ p4sum:F2}%");
            Console.WriteLine($"{ p5sum:F2}%");
        }
    }
}
Дано съм помогнал

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