Loading...
devil619 avatar devil619 62 Точки

[Exam Problems] C# Basics - Problem {3} - The Explorer. Разминаване?

Ако може някой да помогне, защо дава 0/100 т. в Judge-a? Мисля, че всичко е наред, пробвах с тестовете оказани в .txt файловете и фигурата си излиза правилно, I guess?

TheExplorer C# code << source code

Линк към Judge , за да тествате и да видите кое не е наред.

Условие в .docx 

Условие(на кратко): The char that forms the outline of the diamonds is '*' and the surrounding parts are made of '-' (see the examples). Your task is to print a diamond of given size n.

  • Input: Input data should be read from the console. The only input line will hold the width of the diamond – n.
  • Output: The output data must be printed on the console. The output lines should hold the diamond.
  • Constraints: The number n is positive odd integer between 3 and 59, inclusive.

 
input: 5
output:

--*--

-*-*-

*---*

-*-*-

--*--

input: 7
output:

---*---

--*-*--

-*---*-

*-----*

-*---*-

--*-*--

---*---

 

 

 

Тагове:
0
Programming Basics
Anonymous:
Проблемът е решен!
nikola.m.nikolov avatar nikola.m.nikolov 830 Точки

Кодът, който пробваш в judge системата, същия ли е като този от pastebin линка? Ако е същия то причината е, че не четеш от конзолата броя на редовете, а вместо това инициализираш n.

0
devil619 avatar devil619 62 Точки

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

0
Valleri avatar Valleri 304 Точки

Ти го правиш с тире а то трябва с долна черта :)

0
devil619 avatar devil619 62 Точки

Нем, с тире трябва да е. Виж внимателно условието. :)

0
Valleri avatar Valleri 304 Точки

А да сори : ))
Ами като цяло кодът ти е много усложнен, не ми се прави поправка на него, по скоро бих се научил да ги правя с цикъл.
for(int i = 0; i < n; i++)
{
      тук си правиш един нов стринг
      Console.WriteLine("{0}*{0}", new string('.', (n - 1) / 2));
}

Например така - и звездата я позиционираш където ти трябва а броя на тиретата ще се променя, правиш си една матрица преди това:
Срещания на тирета за всеки ред
2 1 2
1 3 1
0 5 0
1 3 1
2 1 2
звездичките не са част от логиката, както виждаш, просто ги слагаш между {0}, {1} etc.
забележи как се променя броя на тиретата тоест трябва да си нагласиш така цикъла че да вкарваш стойности на new string constructor така че да се променят по този pattern. 

http://pastebin.com/sjFc6cQR

Ето едно примерно решение на Телерик - лого

Съветвам те да използваш този похват с for loops. Твоето решение е приспособено към примерните тестове, но ще трябва много дърворезба за да се пригоди към всички тестове и на изпита ще ти е зор :)

1
a.angelov avatar a.angelov 1316 Точки

Ето преработен твоя код работещ на 100%:

http://pastebin.com/FapKQYrZ

 

Проблема беше, че от инпут 11 нагоре ширината на диаманта беше с 2 по-малко от инпута - примерно при 11 ширината е 9, при 13 ширината е 11 - а те трябва да са равни по условие.

2
devil619 avatar devil619 62 Точки

Да, аз се досетих от " (n - 1) / 2) " за outside вместо " n / 3 ". Иначе благодаря за старанието и помощта. :)

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