Професионална програма
Loading...
+ Нов въпрос
Terziyski avatar Terziyski 54 Точки

Square-Frame - Draw With Loops

Здравейте, имам следния проблем. искам да отпечатвам само по една фигура при въвеждане на число по-голямо от три , а не по няколко.

Явно някъде бъркам нещо със логиката или може би трябва да вкарвам някакъв допълнителен " if " . 

Това е линка : http://pastebin.com/VGVSMf2V

Моля за съдействие , условието на задачата е при въвеждане на определено число от конзолата , да се отпечата "Квадратна рамка" . 

Тагове:
0
Programming Basics 03/02/2017 21:56:16
slls1 avatar slls1 43 Точки

По този начин задачата не е вярна ,защото между  тиретата трябва на има интервали а с new string не може да се правят интервали.Ето едно решение без new string  а с if .http://pastebin.com/WBEuRnJb

0
fbinnzhivko avatar fbinnzhivko 1582 Точки

Колега slls1 кои ти каза new че с new string не може да се правят интервали?
Прилагам решение което ползва new string и дава 100/100
Това РЕШЕНИЕ. трябва да ти помогне.

1
03/02/2017 23:40:02
RoYaL avatar RoYaL Trainer 6846 Точки

Правиш ги с цикъл, не с new string, това имаше предвид slls1 :)

0
rumyn avatar rumyn 8 Точки

Здравейте! И аз търся вариянта в който да накарам стринг от два или по много симвула, да се повтори ен пъти без да се слага в цикъл.

0
GapoBG avatar GapoBG 15 Точки

rumyn,

прочети за: Enumerable.Repeat

и ще намериш ключа за бараката!

0
rumyn avatar rumyn 8 Точки

Благодаря за съвета беше ми полезен, но аз търсех това -

string s = new string('s', n).Replace("s", "* ")

Console.WriteLine($"{new string(' ', n - i - 1)}{s.Substring(0, 2 * i + 1)}");

да накарам някак ню стринг да приеме по много от един чар , да не ми се сърди че му казвам отпечатай ми този стриг толкова пъти.и втората част :s.Substring- много ми харесва където му казвам от стринга ес колко поред символа да си дръпне.

 

 

0
GapoBG avatar GapoBG 15 Точки

Terziyski : За задачата се сещам две решения, ето едното с "if" , погледни как съм го направил.        

  int n = int.Parse(Console.ReadLine());

            for (int row = 1; row <= n; row++)
            {
                if (row == 1 || row == n)
                {
                    Console.Write("+ ");
                    for (int col = 1; col <= n - 2; col++)
                    {
                        Console.Write("- ");
                    }
                    Console.WriteLine("+");
                }
                else
                {
                    Console.Write("| ");
                    for (int col = 1; col <= n - 2; col++)
                    {
                        Console.Write("- ");
                    }
                    Console.WriteLine("|");
                }
            }

0
09/02/2017 09:35:22
rumyn avatar rumyn 8 Точки

http://pastebin.com/KJiiHiWY

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

сега ще опитам да я реша и по друг начин днес открих една америка и много и се кефя

string s = new string('s', n).Replace("s", "* ");

това позволява на ню стринг да приеме втората част на реплейс

 

0
rumyn avatar rumyn 8 Точки

даже работи

http://pastebin.com/sbL8jqMU

принципа е същия - печатам първи ред слизам да печатам до последен и се връщам в първата проверка за да отпечатам последен  ред

0