Loading...
thekeymaker1984 avatar thekeymaker1984 2 Точки

Защо не ми сработва програмата.

Здравейте, дава ми грешка!  Нещо не е наред със списъка, който се опитвам да използвам!

 

using System;
using System.Collections.Generic;
                    
public class Program
{
    List<int> list = new List<int>();
    
    public static void Main(List<int> list)
    {
        int n = int.Parse(Console.ReadLine());
        if (n!=42)
        {
            list.Add(n);
            Main(list);
        }
        else
        {
            for (int i =0;i<=list.Capacity;i++)
            {
                Console.WriteLine(list[i]);
            }
        }
        
    }
}

Тагове:
0
C# Advanced
RoYaL avatar RoYaL Trainer 6849 Точки

Не може main method-а ти да приема друго освен масив от стрингове.

0
Maria_ls avatar Maria_ls 383 Точки

Подозирам, че проблемът ти е в този List, който стои в нищото. Има ли някаква причина да е деклариран извън Main? Не съм съвсем запозната, но си мисля че такова нещо не е възможно...

0
RoYaL avatar RoYaL Trainer 6849 Точки

Възможно е. Част от класа е - поле без модификатор за достъп (по подразбиране за полето е private)

1
Maria_ls avatar Maria_ls 383 Точки

Мерси за разяснението :)

0
ivanA123 avatar ivanA123 7 Точки

Сложи го в майна, защото добавяш към него. В случая трябва да е в Main.

Грешка, на второ четене колегата е прав.

0
03/01/2017 22:16:25
ktrajkov avatar ktrajkov 4 Точки
using System;
using System.Collections.Generic;

public class Program
{
    public static void Main()
    {
        List<int> list = new List<int>();
        int n = 0;

        while (n != 42)
        {
            if(int.TryParse(Console.ReadLine(),out n))
            {
                list.Add(n);
            }          
        }
        for (int i = 0; i <= list.Count - 1; i++)
        {
            Console.WriteLine(list[i]);
        }
    }
}

С уговорката, че това НЕ е КПК!

0
thekeymaker1984 avatar thekeymaker1984 2 Точки

Благодаря за решението. Как да направя програмата с рекурсия!!!

0
ktrajkov avatar ktrajkov 4 Точки
using System;
using System.Collections.Generic;

public class Program
{
    static List<int>  list = new List<int>();

    public static void Main()
    {
        int n = int.Parse(Console.ReadLine());
        if (n != 42)
        {
            list.Add(n);
            Main();
        }
        else
        {
            for (int i = 0; i <= list.Count - 1; i++)
            {
                Console.WriteLine(list[i]);
            }
        }
    }
}

Ако държиш на Main метода.

0
03/01/2017 19:04:28
thekeymaker1984 avatar thekeymaker1984 2 Точки

Да това работи, благодаря. Просто трябва да използвам static.

Но продължава да ми е интересно, как мога да подавам list на фунция (явно Main не приема list) и после с рекурсия да викам пак функцията, като и давам променения вече списък.

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