Задача 4 от изпита на 26 март 2016
Нищо не ми стана ясно по тази задача...
Целта е да се въведат n числа, и да се изведат на екран колко процента от тях се делят на 2, 3 и 4.
При условие, че броят на въведените числа е цяло число, броят на числата, които се делят на 2, 3 или 4 също е цяло число ... не ми стана ясно, защо когато декларирам променливите за брой числа да са от тип int ми дава грешка?
След като прочетох решението на задачата и смених да са от тип ... var p1 = 0.0; се получи, но не схващам къде е разликата ....
Това беше първоначалният ми код, който незнайно за мен защо, не върши работа:
using System;
namespace Division04
{
class Program
{
static void Main(string[] args)
{
var n = int.Parse(Console.ReadLine()); //100% и брой променливи num които ще въвеждаме
int p1 = 0; //брой променливи num които се делят без остатък на 2
int p3 = 0; //брой променливи num които се делят без остатък на 3
int p4 = 0; //брой променливи num които се делят без остатък на 4
for (int m = 1; m<=n; m++)
{
var num = int.Parse(Console.ReadLine()); // променлива в която се въвежда число
if (num % 2 == 0) p1++;
if (num % 3 == 0) p3++;
if (num % 4 == 0) p4++;
}
Console.WriteLine("{0:f2}%", (p1 / n) * 100);
Console.WriteLine("{0:f2}%", (p3 / n) * 100);
Console.WriteLine("{0:f2}%", (p4 / n) * 100);
}
}
}
Ако на някой му е ясно защо не върви ... да пробва да ми обясни, ако иска ...
Да...това ...ми е ясно, че процента не е цяло число вече ...
Не ми е ясно компютърът защо не се сеща, че е double :)))
Това, което си написал ти...е друг вариант явно ...първият вариант е още като ги декларирам р1, р3, р4 да са от тип double, тогава се сеща, че резултата е също double. Явно трябва да го укажа това задължително по един от двата начина ...това разбирам до момента.
По твоя начин никъде не си задала, че е double и програмата гърми. Компилаторът си ги отчита по default - int.
Ok. Мисля, че ми се изясни. Thanks