Loading...
chokokn avatar chokokn 0 Точки

*Изписване на число до 100 с думи

Колеги моля, Ви да погледнете кода и къде е грешката Judge ми дава грешки.

Още повече, че в условието не пише да проверяваме за стойности под 0 и над 101.

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

Моля за отговор. Ако някой има достъп до judge да тества аз немога да се оправя.

Благодаря Ви предварително.

Решение №5368790 от chokokn към задача Number 0...100 to Text

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _100totext
{
    class Program
    {
        static void Main(string[] args)
        {
            var num = int.Parse(Console.ReadLine());
            var str = "";

            if (num < 0) { Console.WriteLine("invalid number"); }
            if (num > 100) { Console.WriteLine("invalid number"); }

            if (num % 10 == 1) { str = "one"; }
            else if (num % 10 == 2) { str = "two"; }
            else if (num % 10 == 3) { str = "three"; }
            else if (num % 10 == 4) { str = "four"; }
            else if (num % 10 == 5) { str = "five"; }
            else if (num % 10 == 6) { str = "six"; }
            else if (num % 10 == 7) { str = "seven"; }
            else if (num % 10 == 8) { str = "eight"; }
            else if (num % 10 == 9) { str = "nine"; }

                if (num >= 0 && num <= 19)
            {
                if (num == 0) { Console.WriteLine("zero"); }
                if (num == 1) { Console.WriteLine("one"); }
                if (num == 2) { Console.WriteLine("two"); }
                if (num == 3) { Console.WriteLine("three"); }
                if (num == 4) { Console.WriteLine("four"); }
                if (num == 5) { Console.WriteLine("five"); }
                if (num == 6) { Console.WriteLine("six"); }
                if (num == 7) { Console.WriteLine("seven"); }
                if (num == 8) { Console.WriteLine("eight"); }
                if (num == 9) { Console.WriteLine("nine"); }
                if (num == 10) { Console.WriteLine("ten"); }
                if (num == 11) { Console.WriteLine("eleven"); }
                if (num == 12) { Console.WriteLine("twelve"); }
                if (num == 13) { Console.WriteLine("thirteen"); }
                if (num == 14) { Console.WriteLine("fourteen"); }
                if (num == 15) { Console.WriteLine("fifteen"); }
                if (num == 16) { Console.WriteLine("sixteen"); }
                if (num == 17) { Console.WriteLine("seventeen"); }
                if (num == 18) { Console.WriteLine("eighteen"); }
                if (num == 19) { Console.WriteLine("nineteen"); }
                
            }
            else if (num >= 20 && num < 30)
            {
                Console.WriteLine("twenty" + " " + str);
            }
            else if (num >= 30 && num < 40)
            {
                Console.WriteLine("thirty" + " " + str);
            }
            else if (num >= 40 && num < 50)
            {
                Console.WriteLine("forty" + " " + str);
            }
            else if (num >= 50 && num < 60)
            {
                Console.WriteLine("fifty" + " " + str);
            }
            else if (num >= 60 && num < 70)
            {
                Console.WriteLine("sixty" + " " + str);
            }
            else if (num >= 70 && num < 80)
            {
                Console.WriteLine("seventy" + " " + str);
            }
            else if (num >= 80 && num < 90)
            {
                Console.WriteLine("eigthy" + " " + str);
            }
            else if (num >= 90 && num < 100)
            {
                Console.WriteLine("ninety" + " " + str);
            }
            if (num == 100) { Console.WriteLine("one hundred"); }

        }
    }
}
 

Тагове:
0
Programming Basics
minkosap avatar minkosap 11 Точки
Best Answer

1. В следните логически условия,

        else if (num >= 20 && num < 30)
            {
                Console.WriteLine("twenty" + " " + str);
            }

като пишеш ("twenty" + " " + str), ще отпечата двайсет и интервал след него. Ако имаш само двайсет като число при теб ще отпечата двайсет плюс интервал а в judge ще очаква двадесет без интервал. Това може да се оправи като махнеш в горния израз интервала и го добавиш където изчисляваш остатъка (str), т.е

if (num % 10 == 1)                     и                        else if (num >= 20 && num < 30)

  str = " one";                                                       Console.WriteLine("twenty" + str);

И това трябва да се поправи във всички подобни условия.

2.  Някъде в числата които се отпечатват си писал някой букви с кирилица, други с латиница. Провери букви като „е“ „о“.

Ето подобно решение, което в judge работи и дава 100 точки.


            var num = int.Parse(Console.ReadLine());
            var str = "";
            if (num >= 0 && num <= 100)
            {
                if (num % 10 == 1)
                 str = " one";
                else if (num % 10 == 2)
                 str = " two"; 
                else if (num % 10 == 3)
                 str = " three";
                else if (num % 10 == 4)
                 str = " four"; 
                else if (num % 10 == 5)
                 str = " five"; 
                else if (num % 10 == 6)
                 str = " six"; 
                else if (num % 10 == 7)
                 str = " seven"; 
                else if (num % 10 == 8)
                 str = " eight"; 
                else if (num % 10 == 9)
                 str = " nine"; 
                if (num >= 0 && num <= 19)
                {
                    if (num == 0) { Console.WriteLine("zero"); }
                    if (num == 1) { Console.WriteLine("one"); }
                    if (num == 2) { Console.WriteLine("two"); }
                    if (num == 3) { Console.WriteLine("three"); }
                    if (num == 4) { Console.WriteLine("four"); }
                    if (num == 5) { Console.WriteLine("five"); }
                    if (num == 6) { Console.WriteLine("six"); }
                    if (num == 7) { Console.WriteLine("seven"); }
                    if (num == 8) { Console.WriteLine("eight"); }
                    if (num == 9) { Console.WriteLine("nine"); }
                    if (num == 10) { Console.WriteLine("ten"); }
                    if (num == 11) { Console.WriteLine("eleven"); }
                    if (num == 12) { Console.WriteLine("twelve"); }
                    if (num == 13) { Console.WriteLine("thirteen"); }
                    if (num == 14) { Console.WriteLine("fourteen"); }
                    if (num == 15) { Console.WriteLine("fifteen"); }
                    if (num == 16) { Console.WriteLine("sixteen"); }
                    if (num == 17) { Console.WriteLine("seventeen");}
                    if (num == 18) { Console.WriteLine("eighteen"); }
                    if (num == 19) { Console.WriteLine("nineteen"); }

                }
                else if (num >= 20 && num < 30)
                {
                    Console.WriteLine("twenty" + str);
                }
                else if (num >= 30 && num < 40)
                {
                    Console.WriteLine("thirty" + str);
                }
                else if (num >= 40 && num < 50)
                {
                    Console.WriteLine("forty" + str);
                }
                else if (num >= 50 && num < 60)
                {
                    Console.WriteLine("fifty" + str);
                }
                else if (num >= 60 && num < 70)
                {
                    Console.WriteLine("sixty" + str);
                }
                else if (num >= 70 && num < 80)
                {
                    Console.WriteLine("seventy" + str);
                }
                else if (num >= 80 && num < 90)
                {
                    Console.WriteLine("eighty" + str);
                }
                else if (num >= 90 && num < 100)
                {
                    Console.WriteLine("ninety" + str);
                }
                if (num == 100)
                {
                    Console.WriteLine("one hundred");
                }
            }
            else
                Console.WriteLine("invalid number");

0
chokokn avatar chokokn 0 Точки

Благодаря! minkosap

Точен отговор.

Стана без проблем...

0
boykopk avatar boykopk 147 Точки

Проблема е в празния стринг накрая при 20, 30 и т.н.

0
ZdravBK avatar ZdravBK 0 Точки

На мен също ми дава грешки при проверки с -1 , 101 и някакво много голямо число, които ги няма по условие. Може би трябва да се коригира условието

Както и грешка при тестване с 41, без да ми показва разлика между това, което очаква системата и това, което получава в резултат на тестването

0
ZdravBK avatar ZdravBK 0 Точки

моля за извинение, за грешката с 41 - лош английски

но другото остава

0
borislav333 avatar borislav333 3 Точки

Доста се поизмъчих и аз,но успях.Ето моето примерно решение:

https://pastebin.com/bynXdR6T

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