Loading...
Niki_Mihov avatar Niki_Mihov 19 Точки

[Judge] C# Basics 19.12.2014 Problem 3 Boat

Здравейте , колеги ! Решавам задача от тип 3та на изпитните задачи (задачите с рисуване) , но ми възниква проблем... 

"unhandled exception input string was not in a correct format....." и ми изписва , че грешката ми е на ред 8(реда с leftDots) , след като го закоментирам 8мия ред ми изписва същата грешка на ред 9 и така и на ред 10 ... 

Пробвах първоначално да ги правя string leftDots = new string('.', (n - 1)); и след това по - надолу в един цикъл да ми принтва на конзолата разни редове , но така когато не са конвъртнати към int , не ми позволява да правя сравнения на променливите в цикъла (например вътре в цикъла да имам if конструкция , в която да пише , че ако leftDots < 0 ...еди какво си да става).

Много ще съм ви благодарен ако ми помогнете , защото търсих в stackoverflow-a за хора с моя проблем , и там ги съветват да конвъртнат променливите към int , и аз така и направих , но пак ми дава exception ...

Ето го кода: (съжалявам , че не e в gitHub) :

using System;

class Program
{
  static void Main()
    {
       int n = int.Parse(Console.ReadLine());
       int leftDots = Convert.ToInt32(new string('.', (n - 1)));
       int asteriks = Convert.ToInt32(new string('*', n - (n - 1)));
       int rightDots = Convert.ToInt32(new string('.', n));

     Console.WriteLine("{0}{1}{2}" , leftDots, asteriks , rightDots);

 

3
Programming Basics 25/04/2015 18:09:44
nikigmi avatar nikigmi 22 Точки

Здравей!

Това е моето решение:

static void Main()
        {
            int n = int.Parse(Console.ReadLine());
            int print = 1;
            //Sail
            for (int i = 0; i < n; i++)
            {
                Console.WriteLine("{0}{1}{2}", new string('.', n - print), new string('*', print), new string('.', n));
                if (i >= n / 2)
                    print -= 2;
                else print += 2;
            }
            print = n * 2;
            //Body
            for (int i = 0; i < (n - 1) / 2; i++)
            {
                Console.WriteLine("{0}{1}{2}", new string('.', (n * 2 - print) / 2), new string('*', print), new string('.', (n * 2 - print) / 2));
                print -= 2;
            }
        }

Много се извинявам, че не е със линк но в момента нямам къде да го кача.

Ако го правиш със променливи int, то те трябва да ти отбелязват колко пъти ще изкараш на конзолата даден симвул.

Ако искаш да принтваш променливи само, то трябва да имаш променливи от тип string който пазят тези "new string(.....)".

Надявам се че помогнах.

Поздрави!

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