Софтуерно Инженерство
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 23 Точки

Здравей!

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

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