Професионална програма
Loading...
remote87 avatar remote87 121 Точки

[Homework] Programming Basics - Loops - Problem {3} - Min, Max, Sum and Average of N Numbers - грешка?

Здравейте!

Условието на задачата е следното: 

Write a program that reads from the console a sequence of n integer numbers and returns the minimal, the maximal number, the sum and the average of all numbers (displayed with 2 digits after the decimal point). The input starts by the number n (alone in a line) followed by n lines, each holding an integer number. The output is like in the examples below. Examples:

input

output

 

input

output

3

2

5

1

min = 1

max = 5

sum = 8

avg = 2.67

2

-1

4

min = -1

max = 4

sum = 3

avg = 1.50


Сега, аз ли нещо бъркам или примерите са объркани? Кога по-точно sum на 3 + 2 + 5 + 1 дава 8 и от там, кога 8 / 4 ( броя на числата ) е 2.67?! Не би ли трябвало отговорите да са sum 11 и съответно average - 2.75?  На втория пример е същото: sum трябва да е 5 и average да е 1.67 ?!

Ето кода ми, ако смятате, че бъркам някъде:

http://pastebin.com/AfYi7aqR

Тагове:
2
Programming Basics 29/09/2015 12:21:43
adrnbeats avatar adrnbeats 37 Точки

Първото число, което получаваш като инпут (в случая 3) ти индикира с колко числа ще работиш. Тоест ти имаш само числата 2, 5 и 1. Тяхната сума съответно е 8 и average-а ти е 2.67.

3
05/09/2015 13:24:44
remote87 avatar remote87 121 Точки

aaaaaaa :D

Благодаря, аз малко по-различно го разбрах хахаха

1
Exten avatar Exten 4 Точки

И аз го умувах бая докато разбера колко елементарно е...

1
KlimentHristov avatar KlimentHristov 56 Точки

Колега благодаря за разяснението, само да отметна, че аз също се чудих с една команда ми дава 11 а не 8. После загрях като прочетох твоето обяснение, явно като дам array.sum() , то смята масива + числото и го дава общо :)

Тогава от твоето рязяснение аз направих нов масив и просто го копирах там и накрая давам сумата от копирания масив.

И сега то си работи смята си само числата без Н-числото. :))) 

Незнам но работи при всичките примери , немога да разбера защо първия ако му дам Сум смята и Н-числото а иначе като го копирам в друг масив и дам на него сумата не взима числото. Показва си правилно.

Ето го с просто решение без ифове и елсове ;) --> http://pastebin.com/GbRMCc64

1
TonislavAtanasov avatar TonislavAtanasov 86 Точки

1. В началото въвеждаш броя на числата, които ще използваш, а не число, което ще участва в агрегатните функции. 
2. Няма нужда да правиш втори масив. Няма логика да правиш втори масив освен това. Масивите са референтни, т.е. когато кажеш arr2 = arr1, това са две променливи, които сочат към една и съща клетка в паметта, т.е. когато промениш единия, променяш и другия. Така като гледам това го знаеш, тъй като пълниш само единия масив, а не и двата.
3. Програмата си работи коректно ако използваш само един масив.

Поздрави :)

2
KlimentHristov avatar KlimentHristov 56 Точки

Колега много си прав :) аз нещо съм се объркал че не е вярно с първия . Явно от ''прегряване''.

Няма нужда от втория да . 

Работи си коректно и с първия :) Благодаря за отговора веднага го чекнах.

1
01/12/2015 20:58:23
Sten_lii70 avatar Sten_lii70 -3 Точки

Същата работа,голямо умуване падна :)

0