Loading...
pveleva avatar pveleva 3 Точки

C# Programming Basics - Problem - ChristmasTree

Здравейте, въпросът ми е принципен, макар че ще го визуализирам с пример от задачата ChristmasTree:

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

namespace ChristmasTree
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            for (int i = 0; i <= n; i++) ;
            Console.WriteLine("{0}{1} | {1}{0}", new string(' ', n - i), new string('*', i));
        }
    }
}

На 15 ред в new string, при използване на променливата 'i' се извежда следното съобщение за грешка:
Error    CS0103    The name 'i' does not exist in the current context    

Същото съобщение за грешка за променливата 'i' се появява във всяка една задача, която се опитам да реша. Как бих могла да реша проблема? 

 

Тагове:
0
Programming Basics
svetoslav_0 avatar svetoslav_0 1009 Точки

Според мен след for (int i = 0; i <= n; i++) не бива да имаш ";" . Пробвай с това, забележи, че частта, която искаш да се изпълнява с всяко завъртане на цикъла е оградена с фигурни скоби:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ChristmasTree
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            for (int i = 0; i <= n; i++)
            {
                Console.WriteLine("{0}{1} | {1}{0}", new string(' ', n - i), new string('*', i));
            }
        }
    }
}

0
icowwww avatar icowwww 2792 Точки

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

махни точка и запетаята от края на реда не е такъв синтаксиса, 14ред

0
08/10/2017 22:59:46
breikara78 avatar breikara78 1 Точки

Здравей. Проблемът е свързан с обхвата на променливи. Когато една променлива е инициализирана в блок, още познат като къдрави скоби {}, тя може да бъде използвана само в този блок, тоест в този блок е нейният обхват. В твоят случай грешката е в липсата на къдравите скоби след цикъла, както и в поставянето на ";" след for цикъла. Без тях цикъла ще прочете само следващият ред и следователно обхвата на променливата "i" ще важи само един ред след for цикъла и тя може да бъде повикана само там. Ако поставиш къдрави скоби и образуваш блок след for цикъла ще можеш да си използваш променливата "i" на всеки ред в блока. Ето така  трябва да изглежда: https://pastebin.com/JW6Lxp3G

0
08/10/2017 23:25:05
traykova44 avatar traykova44 93 Точки

Може ли един цял работещ код за C#  на тази задача?

Моного, много ще съм благодарна!

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