Loading...
Kristianchooy avatar Kristianchooy 59 Точки

1.Day Of Week - Arrays (грешка при компилиране)

здравейте!

Първата задачка от Arrays не може да се компилира, подчертава ми първият ред целия , при положение че е 1:1 задачата от презентацията ? да не би случайно VS да е правил промени от май месец ?

http://pastebin.com/NViKfK25 - това е задачата и не тръгва

Тагове:
1
Programming Fundamentals
borislav9212 avatar borislav9212 745 Точки
Best Answer

Здравей,

Объркал си инициализирането на масива. Трябва скобите да са след типа данни, Ето така ->  string[] days = { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Sathurday", "Sunday" }; При теб е така -> string days[] = { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Sathurday", "Sunday" };

0
vancho avatar vancho 430 Точки

Ти все едно правиш масив от тип days[], a трябва на стринга да сложиш скобите, string[]. Поздрави.

0
YavorSpassov+deleted! avatar YavorSpassov+deleted! 133 Точки

Реших да я напиша с речник, за разнообразие:
 

Dictionary<int, string> dayOfWeek = new Dictionary<int, string>();
        dayOfWeek.Add(1, "Monday");
        dayOfWeek.Add(2, "Tuesday");
        dayOfWeek.Add(3, "Wednesday");
        dayOfWeek.Add(4, "Thursday");
        dayOfWeek.Add(5, "Friday");
        dayOfWeek.Add(6, "Saturday");
        dayOfWeek.Add(7, "Sunday");

        int day = int.Parse(Console.ReadLine());
        bool isThereSuchADay = false;

        foreach (var item in dayOfWeek)
        {
            if (item.Key==day)
            {
                Console.WriteLine(item.Value);
                isThereSuchADay = true;
            }
        }
        if (!isThereSuchADay) Console.WriteLine("Invalid Day!");

 

0
kaloyannikov avatar kaloyannikov 531 Точки

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

Вместо това имаш метод .ContainsKey() .

Поздрави

0
19/09/2016 18:54:49
YavorSpassov+deleted! avatar YavorSpassov+deleted! 133 Точки

Целта ми беше да я реша с речник, защото вече имам решение с масив, а и в условието никъде не пише, че кодът трябва да се оптимизира за бързина. С нито една задача не го правя, ако Judge не го направи на проблем.
Ако си любител на решенията с един ред, можеш да замениш цикъла с:
 

if (dayOfWeek.ContainsKey(day)) Console.WriteLine(dayOfWeek[day]);

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

Отделно, при обхождането на речник със 7 записа, не съм сигурен за каква бързина говорим.

0
19/09/2016 19:18:38
kaloyannikov avatar kaloyannikov 531 Точки

Търсенето при речника е  константно дали ще са 7 елемента или ще са 1 милион. Това става благодарение на хеш функция , но това е друга тема.

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

Не става въпрос да се оптимизира , става въпрос , че не се ползва както е предвиден. И не става въпрос някой да се състезава просто в случая това ,че ползваш Dictionary е все 1  ползване на списък с key и value ,което всъщност е друга структура (Tuple) . 

0
19/09/2016 19:39:52
Leprikona avatar Leprikona 108 Точки

Винаги квадратните скоби, които показват че дадената променлива е масив, се пишат след променливата:

напр.: int[] input - то така се и чете - масив от числа ([] от input, за който е зададена стойността "int")

0
nasyotbm avatar nasyotbm 5 Точки

laughМисля че грешката е:

Saturday ,а не Sathurdaycrying

laugh

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