12.Draw Fort
Някой може ли да ми помогне?
Получавам само 30/100
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DrawFort
{
class Program
{
static void Main(string[] args)
{
int n = int.Parse(Console.ReadLine());
string firstRow = "";
string lastRow = "";
string SecondLastRow = "";
string firstRowFirstPart = new string('^', n / 2);
string lastRowFirstPart = new string('_', n / 2);
string firstRowMiddlePart = new string('_', n / 2);
string lastRowMiddlePart = new string(' ', n / 2);
if (n>=3 && n<=4)
{
firstRow = "/" + firstRowFirstPart+ (char)(92)+"/" + firstRowFirstPart+ (char)(92);
lastRow = (char)(92) + lastRowFirstPart + "/"+(char)(92) + lastRowFirstPart + '/';
SecondLastRow = "|" + new string(' ', 2 * n - 2)+"|";
Console.WriteLine(firstRow);
}
else
{
firstRow = "/" + firstRowFirstPart + (char)(92) + firstRowMiddlePart+"/" + firstRowFirstPart + (char)(92);
lastRow = (char)(92) + lastRowFirstPart + "/"+lastRowMiddlePart+ (char)(92) + lastRowFirstPart + "/";
SecondLastRow = "|" + new string(' ', n / 2)+" "+new string('_', n / 2)+ new string(' ', n / 2)+ " |";
Console.WriteLine(firstRow);
}
for (int i = 0; i < n-3; i++)
{
Console.Write("|");
Console.Write(new string(' ', 2 * n - 2));
Console.WriteLine("|");
}
Console.WriteLine(SecondLastRow);
Console.WriteLine(lastRow);
}
}
}
А след като се поворих видях че има подобна тема и трябва да променя дължината на средната част на първич, предпоследния и последния ред на n * 2 - 4 - 2 * (n / 2).
Не бих се сетил......
Трябва да ескейпваш някои специални символи като наклонена черта и кавички с другата наклонена черта(\). Стрингът abc\123 би изглеждал така във Visual Studio: "abc\\123". Също можеш да използваш @ пред стринга(@"abc\123"), за да приема всичко буквално.
Благодаря!