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

Проблем с 6-та задача"Square of Stars"от " Programming Basics - октомври 2016"

Не мога да разбера къде бъркам.Моля,някой да ми каже!

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

namespace КвадратОтЗвездички
{
    class Program
    {
        static void Main(string[] args)
        {
            var n = int.Parse(Console.ReadLine());
            {
                Console.WriteLine((new string('*', n)));
            }
            var i = n - 2;
            for (int k = 0; k <= i; k++)
            {
                Console.Write(new string('*', 1));
                Console.Write(new string(' ', i));
                Console.WriteLine(new string('*', 1));
            }

            Console.WriteLine(new string('*', n));
        }
    }
}

Тагове:
Pilgrimage avatar Pilgrimage 515 Точки

Ето тук :

 for (int k = 0; k < i; k++)

При твоят вариант печаташ един ред повече.

Успех! :-)

0
19/10/2016 20:40:03
marriamatilda avatar marriamatilda 0 Точки

Един ред повече? Аз  написах for (int k = 0; k < i; k++) вече и пак не се получи. Други идеи?

0
marriamatilda avatar marriamatilda 0 Точки

Опа,като рестартирах Judge,се оказа че се е получило.

0
georgi.getz avatar georgi.getz 8 Точки

k < i     а не  <=

0
marriamatilda avatar marriamatilda 0 Точки

Благодаря,но не се получи! Може ли още жокери?

0
Pilgrimage avatar Pilgrimage 515 Точки

При мен с тази корекция работи перфектно.

И Judge е съгласен с мен :-)
Виж дали не пропускаш нещо при копирането.

0
19/10/2016 21:19:48
davichonov365 avatar davichonov365 127 Точки

for (int k = 0; k < i; k++) 

 

не се сещам точно условието ,. но най вероятно те дъни това равно 

0
marriamatilda avatar marriamatilda 0 Точки

Вече опитах без равното но пак не стана.

0
davichonov365 avatar davichonov365 127 Точки

ами не печаташ разстояния между звездите на първия ред и последния сигурно ,.  ама в задачата която виждам аз,. няма нужда посредата да е празно ,. незнам дай условието на задачата ? по принцип си погледнах моето решение ,. вътре си е запълнено със звезди 

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

            for (int i = 0; i < n; i++)
            {
                for (int y = 0; y < n; y++)
                {
                    Console.Write("*");
                    Console.Write(" ");
                }
                Console.WriteLine(" ");
            }

0
19/10/2016 21:15:23
Pilgrimage avatar Pilgrimage 515 Точки

Можеш да си оптимизираш печатането, като обединиш трите реда в един.

И понеже само за празните места ти трябва string конструктор :

Console.WriteLine("*" + new string(' ', i) + "*");

или, което е същото:

Console.WriteLine("*{0}*", new string(' ', i));

В последният пример {0} е плейсхолдер, където се вмъква съдържание на променлива или стойност на израз.

И понеже е първият, е с номер 0, и взима първата променлива след кавичките и запетаята.

0
dmaknev avatar dmaknev 46 Точки

И понеже всичко друго вече са ти го поправили, остава само да добавя че трябва да си по-внимателен като цяло, например на първия Console.WriteLine имаш едни скоби в повече, което вероятно няма да ти даде грешка, но все пак ;)

0
vladomitkov avatar vladomitkov 0 Точки

k=1 също става, за да остане k<=i

0