Софтуерно Инженерство
Loading...
martinml avatar martinml 285 Точки
Best Answer

Увеличават се, но трябва да зададеш result1 .. result5 след цикъла - ако го правиш преди това, промяната не им влияе. Освен това, трябва да cast-неш p1 .. p5 към double, иначе ги закръгля, или да ги направиш double още в самото начало.

Поправено решение

0
kamen971 avatar kamen971 1 Точки

Тръгна на 100% , но според мен няма логика p1...p5  да са double . Благодаря !

1
martinml avatar martinml 285 Точки

Когато вършиш операции с int и int, получаваш обратно int (дори и да го използваш, за да декларираш double, т.е. всичко след дес. запетая ще се загуби). Ако поне едното е double, получаваш double.

Това е един прост пример:

int a = 7;
int b = 2;
double result = a/b;
Console.WriteLine(result); // На конзолата се принтира 3

7 / 2 в математиката е 3.5, но тук и a, и b са int, следователно програмата трябва да върне int и получаваш 3.

Ако a или b са double, ще получиш double:

double a = 7;
int b = 2;
double result = a/b;
Console.WriteLine(result); // На конзолата се принтира 3.5

 Това вече е операция между int и double, затова няма закръгляне и получаваш точен отговор.

Кастването върши същата работа - превръща единия int в double, за да не се получи целочислено деление.

Можеш да видиш още информация тук в книгата на Наков (използвай ctrl + f и напиши целочислено деление)

1
21/08/2017 18:23:22
donsavage avatar donsavage 3 Точки

Изхода ти подсказва какъв тип трябва да е:

66.67%

0.00%

0.00%

0.00%

33.33%

С int при подобни задачи/проекти можеш да загубиш данни, което не е желателно 

Целочисленият тип "int" няма как да даде такъв изход с плаваща запетая.

Ето как ще изглежда изходът ти с int:

66%

0%

0%

0%

33%

За това решението е с double, а не с int :)

Четете внимателно условията и ще се справяте доста добре :)

-1
15/10/2018 02:21:05