Loading...
Leprikona avatar Leprikona 108 Точки

Задача Game of Names от Programming for Beginners 24 April 2016

Здравейте стигнах до тук със задачата. Как мога да намеря резултата на всеки един от тях и да му изпиша името?

Благодаря! :)

using System;

class Program
{
    static void Main()
    {
        int input = int.Parse(Console.ReadLine());
        for (int i = 0; i < input; i++)
        {
            string name = Console.ReadLine();
            int number = int.Parse(Console.ReadLine());
            foreach (char c in name)

                if (c % 2 == 0)
                {
                    number += c;
                }
                else
                {
                    number -= c;
                }
            Console.WriteLine(number);
        }
    }
}

Тагове:
0
Programming Basics
borislav9212 avatar borislav9212 745 Точки

Здравей,

Трябва да си инициализираш int maxSum = int.MinValue и един празен string newName = string.Empty; и една sum която е равна на number който парстваш на конзолата. След това използваи вместо foreach - for цикъл. до дължината на stringa. във if  проверяваш дали (name[j] % 2 == 0) - sum += name[j]; , else изваждаш  sum -= name[j]; След това проверяваш с един if  дали "sum" е по-голпма от "maxSum" и накрая отпечатваш. Стига с толко подсказки, нарочно не ти давам решението наготово, хубаво е сам да стигнеш до него за да го разбереш, ако има проблеми пиши пак.

 

0
vancho avatar vancho 430 Точки

Ами никъде не виждам да пазиш сумите на играчите. Това, което правиш е че четеш името, четеш точките събираш или вадиш стойността на чара и принтираш. Трябва ти масив или лист, в който да добавяш резултата на играча и един за имената например. Съответно на които индекс от единия масив ти е името, на същия индекс от другия са ти и точките на съответния играч (име). После да намериш максималният резултат на играч и да изкараш вече резултата. Успех, ако не ти помага обяснението и искаш малко код, пиши.

-1
04/05/2016 22:00:39
IskrenPenev avatar IskrenPenev 177 Точки

преди да започнеш да въртиш цикъла си направи една променлива long maxPoints  = long.MinValue; и един празен string winner = "";

когато приключи вътрешният ти цикъл (foreach-a) проверяваш дали number е по-голямо от maxPoints  - ако е  maxPoints = number   и winner = name.

когато прочетеш дадените n - реда, принтираш winner  и maxPoints 

(може да се реши и с масив/списък, но в случая е излишно да съхраняваш всички данни)

P.S ползвай long, че може да не се събереш в int 

0
04/05/2016 22:47:54
ihristov22 avatar ihristov22 28 Точки

Здравейте колеги.

Решавам въпросната задача опитвайки се посредством използването на масив. Имам затруднение. Може ли някой да ми обясни, къде ми е грешката и защо на един от редовете при парсване на InitialScores ми излиза Exeption input string not in the correct format.

Благодаря.

https://github.com/ihrist/SoftwareUniversity-ProgrammingFundamentals-Homeworks/blob/master/GameOfNames/Program.cs

0
Alex0101 avatar Alex0101 374 Точки

Здравей колега, пусни моля те линк към условието и джъджа, за да не ровим 10 мин

2
IskrenPenev avatar IskrenPenev 177 Точки

1. Не използваш масива който заявяваш в началото (макар че той е излишен).

2. Щом в началото си решил да ползваш long, ползвай само long, махни тези int-ве.

3. Недей да сравняваш сумата със >=, а само с по-голямо.

4. Никъде не ползваш променливите winner и maxPoints, нито променяш тяхната стойност - от началото до края winner е празен стринг, а maxPoints е long.MinValue

5. Както си написал решението си, когато намериш сума по-голяма на максималните точки(long.MinValue) ти печаташ, а трябва да печаташ само накрая, когато си преминал през целия цикъл. (В момента приложението ти след всеки прочетен ред ще отпечатва съответния играч и точките му като "победител")

П.П Приложението ти не дава никаква грешка (Exception), явно му подаваш невалиден вход, Изхода е както написах по-горе.

 

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