[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 ?!
Ето кода ми, ако смятате, че бъркам някъде:
aaaaaaa :D
Благодаря, аз малко по-различно го разбрах хахаха
И аз го умувах бая докато разбера колко елементарно е...
Колега благодаря за разяснението, само да отметна, че аз също се чудих с една команда ми дава 11 а не 8. После загрях като прочетох твоето обяснение, явно като дам array.sum() , то смята масива + числото и го дава общо :)
Тогава от твоето рязяснение аз направих нов масив и просто го копирах там и накрая давам сумата от копирания масив.
И сега то си работи смята си само числата без Н-числото. :)))
Незнам но работи при всичките примери , немога да разбера защо първия ако му дам Сум смята и Н-числото а иначе като го копирам в друг масив и дам на него сумата не взима числото. Показва си правилно.
Ето го с просто решение без ифове и елсове ;) --> http://pastebin.com/GbRMCc64
1. В началото въвеждаш броя на числата, които ще използваш, а не число, което ще участва в агрегатните функции.
2. Няма нужда да правиш втори масив. Няма логика да правиш втори масив освен това. Масивите са референтни, т.е. когато кажеш arr2 = arr1, това са две променливи, които сочат към една и съща клетка в паметта, т.е. когато промениш единия, променяш и другия. Така като гледам това го знаеш, тъй като пълниш само единия масив, а не и двата.
3. Програмата си работи коректно ако използваш само един масив.
Поздрави :)
Колега много си прав :) аз нещо съм се объркал че не е вярно с първия . Явно от ''прегряване''.
Няма нужда от втория да .
Работи си коректно и с първия :) Благодаря за отговора веднага го чекнах.
Същата работа,голямо умуване падна :)