Loading...

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

maya.peneva avatar maya.peneva 18 Точки

Programming Fundamentals -> Exercises: Arrays -> Rotate and Sum

Здравейте,

Моля за помощ със следния код: http://pastebin.com/de4m4hsp

Грешката си я намирам, но не знам как да я оправя. Не знам защо, но като върти вътрешния цикъл (с j) втори път, numbers се презаписва заедно с temp, което би трябвало да става едва след като се излезе от вътрешния цикъл. Така първата цифра на втория ротейтнат масив става грешна :(

Благодаря предварително :)

Тагове:
0
Programming Fundamentals
NonaG avatar NonaG 111 Точки

Здравей! Трябва тази temp да я изкараш преди вътрешния цикъл (temp трябва да е int, няма нужда да пазиш стойностите й в масив). Идеята е: последното число от масива отива в temp, завърташ го и temp отива на нулева позиция в масива. И само завъртането е вътре във вложения цикъл. Ако искаш, мога да ти пейстна твоето решение поправено, но ще пишеш. Направи F10  и вход 1 2 3 4 със завъртане 1, и проследи постъпково какво ти се случва с масива. :)

0
02/02/2017 11:19:00
maya.peneva avatar maya.peneva 18 Точки

Благодаря за отговора :)

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

Ще съм ти благодарна, ако ми поправиш решението :)

0
NonaG avatar NonaG 111 Точки

var arrayOfInts = string.Format(Console.ReadLine());
            var k = int.Parse(Console.ReadLine());
            var numbers = arrayOfInts.Split(' ').Select(int.Parse).ToArray(); - 1 2 3 4
            var result = new int[numbers.Length];
            for (int i = 0; i < k; i++)
            {
                  var  temp = numbers[numbers.Length-1]; - това ти е последният елемент /4/
                for (int j = numbers.Length - 1; j > 0; j--) - j първо ти е 4 и цикълът ще завърши: 1 1 2 3
                {
                    numbers[j] = numbers[j - 1];
                }
                numbers[0] = temp; - на мястото на нулевия елемент [0] ще отиде числото 4 - 4 1 2 3
            Console.WriteLine(string.Join(" ", numbers)); - тук ще си го видиш реално моментното състояние на масива
            }

Направи го при k=2, например и ще видиш как се случва. Ти използваш още един масив - result и той ти идва в повече, защото е излишен за този етап от задачата, по-лесно е да работиш с първоначалния масив и само да местиш последната цифра на първо място.

Като видиш, че ти работи коректно, си продължи алгоритъма. При мен е така: http://pastebin.com/M3gZLa6m

1
02/02/2017 12:56:41
maya.peneva avatar maya.peneva 18 Точки

Най-сетне, гледайки кода ти, осъзнах, че не съм прочела условието правилно :D :D :D
Благодаря ти!

Поправеното ми решение:
http://pastebin.com/de4m4hsp

0
ivan.d.uzunov avatar ivan.d.uzunov 22 Точки

http://pastebin.com/dWccbD89

Ето и моето решение. :)

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