Loading...
lyubamarinova avatar lyubamarinova 14 Точки

Programming basics - март 2016 - Kвадрат от звездички

Здравейте

За тази задача от домашната , написахследното решение:

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

namespace Square_of_Stars
{
    class SquareOfStars
    {
        static void Main(string[] args)
        {
            int a = int.Parse(Console.ReadLine());
            if (a == 3)
            {
                Console.WriteLine("***");
                Console.WriteLine("* *");
                Console.WriteLine("***");
            }
            if ( a == 4)
            {
                Console.WriteLine("****");
                Console.WriteLine("* *");
                Console.WriteLine("* *");
                Console.WriteLine("****");
            }
            if ( a == 5)
            {
                Console.WriteLine("*****");
                Console.WriteLine("* *");
                Console.WriteLine("* *");
                Console.WriteLine("* *");
                Console.WriteLine("*****");
             }
            else
            {
                Console.WriteLine("Not valid number");
            }
    
            }
        }
    }

           Във Visual Studio всичко си работи добре , но Judge системата ми дава 0 точки.Задължително ли е задачата да се реши с цикъла "for" и заради това ли Judge системата не ми дава точки?

 

Тагове:
0
Programming Basics
InaPanova avatar InaPanova 28 Точки
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SquareOfStars
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            for (int row = 0; row < n; row++)
            {
                for (int col = 0; col < n; col++)
                {
                    Console.Write("* ");
                }
                Console.WriteLine();
            }
        }
    }
}

Да, много по-добре е с два for-а, защото ти тук така го ограничаваш да печата до 5, а и твоето работи вмомента само за а = 3, ако искаш да печаташ a = 5 трябва да набиеш интервали същото и за 4-ката. Ето ако се затрудниш моето решение. 

Ето така работи твоето за 4 и 5, но няма да ти даде точки в judge    

if ( a == 4)
            {
                Console.WriteLine("****");
                Console.WriteLine("*  *");
                Console.WriteLine("*  *");
                Console.WriteLine("****");
            }
            if ( a == 5)
            {
                Console.WriteLine("*****");
                Console.WriteLine("*    *");
                Console.WriteLine("*    *");
                Console.WriteLine("*    *");
                Console.WriteLine("*****");
             }

3
borislav9212 avatar borislav9212 745 Точки

Задължително трябва да се направи с for цикъл, за да работи с всяко число, което му подадеш на входа. Няма смисъл от тези проверки който правиш, защото входа не се знае, той е " N " число. Ако числото е 1000, трябва да правиш 1000 проверки. затова има цикли. При теб работи защото въвеждаш само 3,4,5, а условието на задачата е друго и затова Judga дава грешки. Четеш едно число от конзолата, правиш два вложени цикъла, първият e row, който ти е за редовете(започва от 0 до n), а вторият за колоните (започва от 0 до n) и вътре отпечатваш звездичката

1
11/04/2016 00:55:46
borislav9212 avatar borislav9212 745 Точки

Вътрешноста на квадрата празна ли трябва да е. Ние ти показахме запълнен с звездички. Като гледам, как си го направила, се сетих че имаше и такава задача в една домашна. Ето по този начин е празен квадрата http://pastebin.com/gvrHxDC6

2
Shirdor avatar Shirdor 131 Точки

Аз бих я направил така

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

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

     for (int i = 0; i < a - 2; i++)
                {
                    Console.WriteLine("{0}{1}{0}", new string('*', a), new string(' ', a - 2));
                }

Console.WriteLine(new string('*', a));

0
borislav9212 avatar borislav9212 745 Точки

Само не разбирам, защо слагаш " Place holderi ". Може ли да ми обясниш? Това което си написал в момента изкарва на конзолата два квадрата с тези " Place holderi " , първият е правилен n x n звездички а от втория няма нужда в тази задача(който е n колони и n - 2 реда) и Judge няма да я приеме за вярна. Ако ги махнеш тези " Place holderi ", задачата става вярна. Тази задача, която обсъждаме в момента е квадрат от звездички(запълнен със звездички), а на нея и трябва вътрешността на квадрата да е празна, последната задача от First Steps In Coding, тоест кода който дадох по горе.

0
Shirdor avatar Shirdor 131 Точки

Объркал съм във фора. Там където е Console.WriteLine();трябва да е Console.WriteLine("{0}{1}{0}", new string('*',1), new string(' ',a-2)) a placeholder арите ги ползвм за да не пиша три пъти нов стринг

2
borislav9212 avatar borislav9212 745 Точки

Една грешка променя цалата задача, Благодаря за пояснението. до този момент не бях решавал задачи с чертаене, в които, в new string да използвам placeholder. Научих нещо ново.

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