Софтуерно Инженерство
Loading...
+ Нов въпрос
paskal06 avatar paskal06 2 Точки

Проблем със задача - Programming Fundamentals - Arrays and List Algorithms - Exercise, Задача 6

6.   Batteries

You are in a battery manufacturing plant. Your task is to stress test the latest batch of batteries for longevity.

You will receive an array of doubles on the console (first line, space-separated), indicating the capacities of the different batteries in the batch (in mAh). On the next line, you will receive the usage per hour for each battery as an array of doubles (second line, space-separated).

Next, you will receive the amount of hours you have to stress test each battery for (as an integer). Each of the batteries drains by its capacity until either the testing hours are over, or the battery dies (reaches 0 capacity).

Print the status of all the batteries at the end of the testing session (in percentage). If any batteries die, along with the percentage, print how many hours it took. The capacity and percentage are rounded to the 2nd decimal point.

------------------------------------------------------------------------------------

Процентите накрая не ми се получават. Някой има ли идея как да ги оправя?

https://pastebin.com/2LNqA2uF

 

 

-Благодаря предварително.

Тагове:
0
Programming Fundamentals 30/06/2017 22:19:25
paskal06 avatar paskal06 2 Точки

https://pastebin.com/1GGh3AhY

Реших си проблема сам, но и открих нещо много странно с масивите в C#.

Грешката ми беше, че бях написал:

 double[] HundredPercent = Capacity;, за да запазя данните на Capacity и да мога да го манипулирам.

Интересното е че после по-надолу бях манипулирал Capacity, но HundredPercent си приемаше стойностите на

Capacity, въпреки че манипулацията ставаше след като съм декларирал HundredPercent.

Някой знае ли защо става така?

 

 

0
sevgin0954 avatar sevgin0954 564 Точки

Прочети в интернет за референтни и стоиностни типове (reference type value type)

0
simeon3000 avatar simeon3000 265 Точки

"Някой знае ли защо става така?"

Става така заради типа данни, който ползват масивите - https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/reference-types

Изгледай още веднъж видеата на Преслав. Няколко пъти той обяснява разликите между reference types и value types.

 

Пример:

            int[] a = new int[] { 1, 2 };
            int[] b = a;

            b[0] = 10;
            b[1] = 20;

            Console.WriteLine(string.Join(" ", a));
            Console.WriteLine(string.Join(" ", b));

изход:

10 20

10 20
0
01/07/2017 01:13:12