Loading...
Kuncavia avatar Kuncavia 1 Точки

Затруднение с задач "Number 0...9 to Text"

Здравейте,

Имам затруднение със задача "Number 0...9 to Text". Разгледах няколко варянта от подобни задачи и стигнах до следния код:

using System;

class NumberToText
{
    static void Main(string[] args)
    {
        string num = Console.ReadLine();
        if (num == "0")
            Console.WriteLine("zero");
        else if (num == "1")
            Console.WriteLine("one");
        else if (num == "2")
            Console.WriteLine("two");
        else if (num == "3")
            Console.WriteLine("three");
        else if (num == "4")
            Console.WriteLine("four");
        else if (num == "5")
            Console.WriteLine("five");
        else if (num == "6")
            Console.WriteLine("six");
        else if (num == "7")
            Console.WriteLine("seven");
        else if (num == "8")
            Console.WriteLine("eight");
        else if (num == "9")
            Console.WriteLine("nine");
        else if (num == "10")
            Console.WriteLine("ten");
        else if (num >= "11")
            Console.WriteLine("number too big");
    }
}


Проблема е ясен "Operator '>' cannot be applied to operands of type 'string' and 'string'" (в края на кода). 

Въпроса е какво да променя? Пробвах и по-сложни кодове, но там още повече се овъртях. 

Поздрави,

 

Тагове:
1
Programming Basics
dimitur_botev avatar dimitur_botev 112 Точки

Доста екстравагантно решение колега. ФИкс;

int num = int.Parse(Console.ReadLine());

if(num == 0) {

console.writeline("one")

} ... 

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

0
dakata avatar dakata 26 Точки

Да, оператора не е приложим към операнд от тип "стринг".

Ето още едно решение за по-любознателните начинаещи:

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

namespace NumberToText
{
    public enum WordOfNumber
    {
        zero = 0,
        one = 1,
        two = 2,
        three = 3,
        four = 4,
        five = 5,
        six = 6,
        seven = 7,
        eight = 8,
        nine = 9,
        ten = 10
    };
    class Program
    {
        static void Main(string[] args)
        {
            var number = int.Parse(Console.ReadLine());

            if (number >= 0 && number < 10)
            {
                foreach (int val in Enum.GetValues(typeof(WordOfNumber)))
                {
                    if (number == val)
                    {
                        Console.WriteLine((WordOfNumber)val);
                    }
                }
            }
            else
            {
                Console.WriteLine("number too big");
            }
        }
    }
}

 

0
JivkoJelev avatar JivkoJelev 235 Точки

Най-добре да махнеш последната проверка и просто да я сложив в последен Елсе.Ето така:

using System;

class Program
{
    static void Main()
    {
        int num = int.Parse(Console.ReadLine());

        if (num == 1)
        {
            Console.WriteLine("one");
        }
        else if (num == 2)
        {
            Console.WriteLine("two");
        }
        else if (num == 3)
        {
            Console.WriteLine("three");
        }
        else if (num == 4)
        {
            Console.WriteLine("four");
        }
        else if (num == 5)
        {
            Console.WriteLine("five");
        }
        else if (num == 6)
        {
            Console.WriteLine("six");
        }
        else if (num == 7)
        {
            Console.WriteLine("seven");
        }
        else if (num == 8)
        {
            Console.WriteLine("eight");
        }
        else if (num == 9)
        {
            Console.WriteLine("nine");
        }
        else
        {
            Console.WriteLine("number too big");
        }

    }
}

0
borislav9212 avatar borislav9212 745 Точки

JivkoJelev  Твоя вариант е добър, само когато им код над 15 реда използвай -> pastebin

2
JivkoJelev avatar JivkoJelev 235 Точки

Пак забравих , извинявам се. :D

1
StanBotev avatar StanBotev 6 Точки

Единственият ти проблем е в първия ред 

string num = Console.ReadLine();

Вместо string декларирай променливата като Int  - 

int num = int.Parse(Console.ReadLine());

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

Гледай да намираш най-лесният за теб начин за решаване , без значение дали е "най-бързият" или "най-елегантния" !

0
bedamusa avatar bedamusa 8 Точки

Както ти е казал StanBotev проблема ти е тук:

 var num = int.Parse(Console.ReadLine());
        if (num == 0)
            Console.WriteLine("zero");
        else if (num == 1)

 

Конкретно на твоето решение по-добре си дефинирай какво ще ти е  на входа за да нямаш проблем после. Другите са задълбали в неща които са ти много далеч. В задачата пише числа към текст а не превърни всичко в текст защото  string num = Console.ReadLine(); дефинираш че на входа ще имаш само текст. При мен аз правя променливите си по този начин var num = int.Parse(Console.ReadLine()); на мен така ми допадаа на теб как ще ти хареса е въпрос на предпочитания. Надявам се, че си разбрал какво съм се опитал да ти кажа. 

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