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

Проблем със задачата за Хистограма от междинния изпит

Имам проблем със извеждането на проценти.БТова ми е кода http://pastebin.com/iTutXyRB,  а това условието на задачата : "Дадени са n цели числа в интервала [11000]. От тях някакъв процент p1 са под 200, друг процент p2 са от 200 до 399, друг процент p3 са от 400 до 599, друг процент p4 са от 600 до 799 и останалите p5 процента са от 800 нагоре. Да се напише програма, която изчислява и отпечатва процентите p1, p2, p3, p4 и p5."

0
Programming Basics
Ivanov.Ivan avatar Ivanov.Ivan Trainer 558 Точки
Best Answer

Разгледай хубаво в примера как се пресмята.

Изхода ти трябва да изглежда така:

Като е хубаво този var на P-тата да го направиш на double

            Console.WriteLine("{0:F2}%" , ( p1 / n ) * 100);
            Console.WriteLine("{0:F2}%" , ( p2 / n ) * 100);
            Console.WriteLine("{0:F2}%" , ( p3 / n ) * 100);
            Console.WriteLine("{0:F2}%" , ( p4 / n ) * 100);
            Console.WriteLine("{0:F2}%" , ( p5 / n ) * 100);

 

0
24/03/2016 15:49:52
D_Dimitrov92 avatar D_Dimitrov92 5 Точки

Благодаря, аз не слагах скоби и програмата първо е извършвало умножението.

0
ArmenPotourlyan+deleted! avatar ArmenPotourlyan+deleted! 488 Точки

За да получиш в проценти частта от числа в дадена колона на хистограмата:

  • Раздели броя числа p в колоната на общия брой n.
  • Умножи по 100.


p = (p / n) * 100;

Можеш да редактираш редовете, където извеждаш на конзолата:

Console.WriteLine("Pi = " + (100 * (decimal)pi / n));  // i = 1, 2, 3, 4, 5

0
24/03/2016 15:58:18
vancho avatar vancho 430 Точки

Като гледам кода ти броиш бройката на числата, а не процента на едните, процента на другите в съотношение към общата бройка... т.е.: p = (p / n) * 100

-1
24/03/2016 15:52:20
IskrenPenev avatar IskrenPenev 177 Точки

В самото условие е показано как се изчисляват в проценти,  не е необходимо да ги правиш нови променливи, просто напиши логиката на изчислението в реда за принтиране.

Console.WriteLine("P1 = {0:F2}%", (p1 /n) * 100);

 

0
Simeon.R avatar Simeon.R 198 Точки

Един вариант е броя срещания да го разделиш на броя n цели числа. Получаваш 0.хх, което като го умножиш по 100 получаваш процентите. След това си го форматирай, както е указано в условието. Например ако искаш да изписва знака "%" и да показва до втория десетичен знак използвай например: 

Console.WriteLine("P1 = {0:f2}%", (((double)p1/n)*100));

Тук съм кастнал към double, тъй като входът ти приема int-ове, а целочисленото деление не е подходящо в случая.

0
krokicha avatar krokicha 76 Точки

Имаш грешка в проверките! Пропускаш 399, 599 и 799!

1
krokicha avatar krokicha 76 Точки

Накрая при печатането на %-те печаташ бройката на числата, а не %-та от общата бройка. Общата бройка n е 100%, търсената бройка p е x% -> n/100 = p/x -> x = (p / n)*100  т.е. вместо p1, p2, ..., p5 трябва да отпечаташ "(p1 / (decimal)n) * 100", .... Тъй като p1 и n са цели за да е делението с десетично число като резултат трябва едното число да го направиш десетично!

0
24/03/2016 16:25:50
Miroslav_Kisov avatar Miroslav_Kisov 60 Точки

Ето друго решение https://pastebin.com/mrarAeQ9

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