Loading...
PikiMarinova avatar PikiMarinova 2 Точки

06. The Most Powerful Word - Programming Basics Online Exam - 6 and 7 July

Здрявейте,

Бихте ли ми помогнали за тази задача?

В Judge ми дава 60/100. (https://judge.softuni.bg/Contests/Submissions/View/17036654)

Условието: https://softuni.bg/downloads/svn/programming-basics-v4/course-directories/september-2019/2019-05/Exam/06.%20The%20Most%20Powerful%20Word.docx

Ето кода:

using System;

namespace _06TheMostPowerfulWorld
{
    class Program
    {
        static void Main(string[] args)
        {
            string input = Console.ReadLine();
            int wordScore = 0;
            int bestScore = int.MinValue;
            string bestWord = "";
            bool StartingWithVowel = false;


            while (input != "End of words")
            {
                int numberOfLetters = input.Length;

                for (int i = 0; i < numberOfLetters; i++)
                {
                    char currentLetter = input[i];
                    wordScore += currentLetter;

                    if (i == 0)
                    {
                        switch (currentLetter)
                        {
                            case 'a':
                            case 'e':
                            case 'o':
                            case 'u':
                            case 'i':
                            case 'y':
                            case 'A':
                            case 'E':
                            case 'O':
                            case 'U':
                            case 'I':
                            case 'Y':
                                StartingWithVowel = true;
                                break;
                        }

                    }


                }

                if (StartingWithVowel)
                {
                    wordScore *= numberOfLetters;
                }
                else
                {
                   
                    wordScore = wordScore / numberOfLetters;
                }

                if (wordScore > bestScore)
                {
                    bestScore = wordScore;
                    bestWord = input;
                }

                wordScore = 0;
                input = Console.ReadLine();

            }


            Console.WriteLine($"The most powerful word is {bestWord} - {bestScore}");
        }
    }
}
 

 

 

Благодаря!

Тагове:
0
Programming Basics with C#
nickwork avatar nickwork 657 Точки
Best Answer

Това ти е кода, прегледай разликите.

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

2.  Не сетваш променливата StartingWithVowel на false след всяка дума.

3. Обърни внимание, че съм използвал кастване тук ( bestScore = (int)wordScore;), махни го и направи малко опити за да видиш как работи, също така съм променил decimal wordScore = 0; от инт на децимал...върни го пак на инт и виж къде се чупи кода... на изпита 100% ще имаш такива проблеми с преобразуването на един тип към друг

 

using System;

namespace _06TheMostPowerfulWorld
{
    class Program
    {
        static void Main(string[] args)
        {
            string input = Console.ReadLine();
            decimal wordScore = 0;
            int bestScore = int.MinValue;
            string bestWord = "";
            bool StartingWithVowel = false;

            while (input != "End of words")
            {
                for (int i = 0; i < input.Length; i++)
                {
                    char currentLetter = input[i];
                    wordScore += currentLetter;

                    if (i == 0)
                    {
                        switch (currentLetter)
                        {
                            case 'a':
                            case 'e':
                            case 'o':
                            case 'u':
                            case 'i':
                            case 'y':
                            case 'A':
                            case 'E':
                            case 'O':
                            case 'U':
                            case 'I':
                            case 'Y':
                                StartingWithVowel = true;
                                break;
                        }
                    }
                }

                if (StartingWithVowel)
                {
                    wordScore = wordScore * input.Length;
                }
                else
                {
                    wordScore = Math.Floor(wordScore / input.Length);
                }

                if (wordScore >= bestScore)
                {
                    bestScore = (int)wordScore;
                    bestWord = input;
                }

                wordScore = 0;
                 StartingWithVowel = false;
                input = Console.ReadLine();
            }

            Console.WriteLine($"The most powerful word is {bestWord} - {bestScore}");
        }
    }
}

1
12/08/2020 17:40:08
PikiMarinova avatar PikiMarinova 2 Точки

Благодаря за отговора.

1. Въобще не бях обърнала внимание, че не променям StartingWithVowel на false.

2. Като сложих закръглянето към по-малкото цяло число Visual Studio ми иска wordScore да е decimal и поради тази причина трябва bestScore да се кастне към int.

Още веднъж благодаря. Понякога ти трябва друг чифт очи да погледнат нещо, за да видят някоя малка грешка.

 

0
nickwork avatar nickwork 657 Точки

Доста добре си разбрала тези особенности, браво за което и успех :)

0
kaleanna avatar kaleanna -12 Точки

Наистина беше много ясно, точно от какво имах нужда 

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

mapquest directions

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