Задача 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);
}
}
}
Ако на някой му е ясно защо не върви ... да пробва да ми обясни, ако иска ...
Усетих аз, че има скрити хитринки с тези 2.0, m при операции и другите подобни... Благодаря за отговорите.
Лошото е че ... единият път компилаторът се лъже с едно другият път с друго..., ако си задам едната променлива да е инт другата дабъл и пак гърми. Дава, че не може инт*дабъл. Явно трябва да се решават още задачи за да го усвоя.