Loading...
atanasovam avatar atanasovam 39 Точки

[Homework] C# Basics - Loops - Problem {3} - Min, Max, Sum and Average of N Numbers

Здрасти с:

Имам проблем с 3тата задача от домашното. Това измислих - http://pastebin.com/E9nQYkFZ - и всичко си работи, обаче не мога да се сетя как по подобен начин да изведа min и max value.

Може ли малко помощ?

Тагове:
0
Programming Basics
Filkolev avatar Filkolev 4482 Точки

Има два варианта.

1. Да ползваш масив и System.Linq, където има методи за извеждане на минимум, максимум, средно и сума на числата в масива. Всичко става директно, без сметки.

2. Което е по-близко до твоето решение - на всяка стъпка от цикъла трябва да провериш дали текущото число е най-малко/най-голямо към момента. За целта предварително трябва да декларираш променливи за min и max (и да им присвоиш подходящи първоначaлни стойности). 

Давам ти само подсказки в случай че предпочиташ сам да се пребориш. Ако искаш мога да ти дам линк към моето решение, то е близко до твоето.

6
atanasovam avatar atanasovam 39 Точки

Ще пробвам втория вариант. А линк към цялото решение само в краен случай, ако не мога да се оправя..

Благодаря!

0
nikola.m.nikolov avatar nikola.m.nikolov 830 Точки

Вторият вариант за повечето хора най-вероятно ще е по-лесен, защото знанията за него вече би трябвало да са усвоени в предните лекции. Съветът ми е да го направиш първо по този начин, след което може да потърсиш в интернет как може да го направиш по първия начин. Ще ти помогне, защото ще си по-подготвен за последната лекция от курса. Това е моето решение, но е по-добре да го отвориш едва след като сам си се справил:

03. MinMaxSumAverage

1
Filkolev avatar Filkolev 4482 Точки

При решението на колегата @nikola.m.nikolov също може да се ползват вместо условни конструкции Math.Min и Max. Просто го споменавам, защото е добре човек да знае наличните варианти и да упражни различни неща, за да има по-богат набор от подходи за решаване на даден проблем.

0
14/08/2014 14:43:27
atanasovam avatar atanasovam 39 Точки

Оправих се
Благодаря!

0
RujenaDimitrova avatar RujenaDimitrova 18 Точки

Здравейте на по-опитните от Вас!

Имам затруднение и направо зациклих на задачата от домашното за "Най-голямо число".

Това е кодът, който успях да "сътворя": https://pastebin.com/7HB0L5Tw.

Благодаря предварително за упътването.

0
Jeliozver avatar Jeliozver 356 Точки

При задаването на условията на цикъла това, което си дала "num" реално е цифрата на въртене на самия цикъл. Първо от коя цифра да започне, после прави проверка дали да продължи спрямо тази цифра и поставено условие и накрая при всяко завъртане цифрата се увеличава с 1.
И така както е написано при всяко ново число въведено става настоящ максимум и после максималното число го приравняваш да е равно на поредния път в който се върти цикъла и така няма как да работи. Освен това при принтиране плейсхолдърите започват от 0 и самото принтиране трябва да е извън цикъла, защото ще принтира при всяко въртене.

Извади входа на първото число извън цикъла и го приеми за настоящ максимум. После вътре в цикъла изисквай число за вход, което да срявнява с настоящия максимум и ако е по-голямо да го прави него настоящ максимум, а самия цикъл да се върти 1 път по-малко от n (защото това число е въведено в самото начало преди цикъла).

Ето едно решение с малко пояснения. Надявам се да стане ясно, че не ме бива да обяснявам.

https://pastebin.com/58KkdxRU

0
22/06/2017 08:55:32
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

Така значи,ти цикъла хубаво си го направила но в него не въртиш нищо.Доколкото виждам променливите са ти ок.щом е цикли и основи на програмирането значи за масиви ти е рано.Предполагам в условието ти е дадено колко числа ще ви дадат на нов ред. Трябва ти малка промяна на кода.

Int n=x; x-числата който трябва да прочетеш от конзолата. 

След това си правиш цикъла.

For(int i=0;i<n;i++)

{ Сга вече знаеш колко числа трябва да прочетеш и започваш.

Int number=int.Parse(console.readline());

Вече имаш входа направен сега оставо да си направиш проверките.ще използваш 3 проминливоa

Int check=int.Min.Value;

If(n>check){ check=n} else{continue;}

Тук си дала наи малката възможна стоъност на int и при всяка подадено число сравняваш,ако п е по-гжлямо или не.ако е по-голямо запазвaш n. Ако е по малко продължаваш стойността не те интересува. И накрая просто изписваш check стойността.

Int check1 за най-малкото се прави по същия начин но ще почнеш от check1=int.MaxValue ..

и с int check3 просто ще събереш всички n :

int check3+=n;

И под цикъла ще разделиш check3/n== average.

Moже да се наложи да закръгляш някъде стойности но мисля че ще се сетиш за това.иначе както колегите са посочили има и много по лесни начини с масиви. Но в основи на програмирането на вас малко вш е рано.доколкото виждам задачата е от loops лекцията.Иначе има решение с масив  и с 4 реда.

0
RujenaDimitrova avatar RujenaDimitrova 18 Точки

Много ви благодаря за помощта.

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

0
ivko33 avatar ivko33 0 Точки

Ще може ли да качиш решение 2, тъй като зациклих яко на него? Сигурно е много просто, аз се въртя в кръг...

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.