Софтуерно Инженерство
Loading...
+ Нов въпрос
Iamnikkysiderov avatar Iamnikkysiderov 10 Точки

8.Sunglasses - Drawing Figures with Loops

Здравейте, ето го и моето решение:

using System;

class FirstSample
{
    static void Main()
    {
        int n = int.Parse(Console.ReadLine());

        int cols = (2 * n) + n + (2 * n);
        int rows = n;
        int innerPart = n - 2;

            string mainBorder = new string('*', 2 * n) + new string(' ', n) + new string('*', 2 * n);
            Console.WriteLine(mainBorder);

            for (int j = 1; j <= innerPart; j++)
            {
                string glass = "*" + new string('/', 2 * n - 2) + "*" + new string(' ', n) + "*" + new string('/', 2 * n - 2) + "*";
                string withBridge = "*" + new string('/', 2 * n - 2) + "*" + magicString("|", n) + "*" + new string('/', 2 * n - 2) + "*";

                if (n/2 == j)
                {
                    Console.WriteLine(withBridge);
                }
                else
                {
                    Console.WriteLine(glass);
                }

            }
            Console.WriteLine(mainBorder);
    }

    public static string magicString (string text, int repeatCount)
    {
        string outputText = "";

        for (int i = 0; i < repeatCount; i++)
        {
            outputText += text;
        }

        return outputText;
    }
}

Знам че magicString-а е излизашен тука, както и да е... Когато въведа четно число мостът, който свързва двете очила излиза на по долния ред, а трябва да е на по-горния. Не знам как да го обясня. Вижте както излиза в примерните входове в word документа на софтуни за тази задача и вижте на мене как ми излиза. Как мога да го поправя точно?

Тагове:
sotirona avatar sotirona 25 Точки
Best Answer

Мостът трябва да ти е на ред j ==(n-1)/ 2,  а не само n/  2, за да важи при четно и нечетно число :)

0
18/12/2016 18:18:27
Wencii avatar Wencii 90 Точки

Здравей! Условието в if-а, когато печаташ withBridge, трябва да стане (n - 1) / 2 == j :)

0
RadinaToteva avatar RadinaToteva 90 Точки

Условието в If-a трябва да е (n - 1) / 2 - 1 == j .

0
g_todorov avatar g_todorov 98 Точки

Здравей,

ето и моето решение, знам че не е перфектно но работи и може да ти е от полза.

Успех!

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

namespace Sunglases
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            Console.WriteLine(new string('*', 2 * n) + new string(' ', n) + new string('*', 2 * n));
            for (int row = 1; row <= n - 2; row++)
            {
                Console.Write('*' + new string('/', 2 * n - 2) + '*');
                if (row == (n - 1) / 2)
                {
                    Console.Write(new string('|', n));
                }
                else
                {
                    Console.Write(new string(' ', n));
                }
                Console.Write('*' + new string('/', 2 * n - 2) + '*');
                Console.WriteLine();
            }
            Console.WriteLine(new string('*', 2 * n) + new string(' ', n) + new string('*', 2 * n));
        }
    }
}

0
Martin.T avatar Martin.T 35 Точки

http://pastebin.com/nzv410Qs Заповядай и моето решение имах същия проблем с моста дано ти помогне :)

0