Loading...
zpapazov avatar zpapazov 5 Точки

[Arrays and Lists] 10.Remove Negatives and Reverse

Здравейте колеги,

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

Това ми е кодът: http://pastebin.com/Ex0B2ZJv

А тук е условието на задачата: Условие

Поздрави.

0
Fundamentals Module
Pilgrimage avatar Pilgrimage 515 Точки
Best Answer

Здравей!

Първо премахни това, защото ти не си го вкарал, за да го изтриваш!:

else

{

results.Remove(numbers[i]);

}

При тоята логика, преди foreach направи една проверка каква ти е дължината на List-а т.е. results.Count, и ако ти е нула - печаташ "empty", а ако не - правиш си foreach... При мен изглежда така :

            if (result.Count>0)
                Console.WriteLine(String.Join(" ", result));
            else
                Console.WriteLine("empty");

1
19/10/2016 02:14:20
zpapazov avatar zpapazov 5 Точки

Получи се така, благодаря ти много. Направих си if, който да провери за results.Count == 0 и да отпечата "empty", а в else вкарах foreach проверката. 

А колкото до пълненето на листа, логиката ми беше такава, че като елемента от масива е по-голям от 0 да го вкарва в листа, а ако е по-малък от 0 изобщо да не го вкарва и затова съм сложил .Remove(). Може да не е много вярно като изписване, но такава ми беше първоначалната логика. Иначе съм съгласен с теб, че по-редно е първо да го напълня и след това да махам. Ще го направя това с пълненето и махането също.

 

Благодаря ти отново !

0
remote87 avatar remote87 121 Точки

Здрасти, аз я реших така и от първия път си ми даде 100 точки:

http://pastebin.com/6xg6F1Bn

С риск за спам, както казва Pilgrimage - все още листа ти е празен и няма нищо вкарано, а ти искаш да remove-неш. Затова не ти се получава :)

1
zpapazov avatar zpapazov 5 Точки

Супер, решението е перфектно и доста разбираемо, само не мога да разбера какво прави метода .Any(). Как се комбинира с if конструкцията ?

0
remote87 avatar remote87 121 Точки

Здрасти!

От това, което прочетох с метода .Any() правя проверка, дали листа е празен или не и според изхода, определям изхода на програмата :)

За справка относно метода:

https://msdn.microsoft.com/en-us/library/bb337697(v=vs.110).aspx

0
LeCannibale avatar LeCannibale 3 Точки
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace demoCod
{
    class Program
    {
        static void Main(string[] args)
        {
            var num = Console.ReadLine().Split().Select(int.Parse).ToArray();
 
            List<int> numbers = new List<int>();
 
            
            foreach (var item in num)
            {
                if (item > 0)
                {
                    numbers.Add(item);
                    
                }
                
                
                
            }
            foreach (var item in num)
            {
              if (item < 0)
              {
                  numbers.Remove(item);
              }
 
            }
 
            numbers.Reverse();
 
             if (numbers.Any()){ Console.Write(string.Join(" "numbers)); }
             else {Console.WriteLine("empty");}
             
             
            
        }
    }
}
1
ivan.d.uzunov avatar ivan.d.uzunov 22 Точки

http://pastebin.com/BJKP3U0h - Така съм го направил аз

1. Още в началото си го ривърсваш, за да не правиш обратен цикъл

2. Правиш си foreach за проверката дали числото е по-голямо от нула

3. Накрая с if else, като го принтирам със string Join, много дълго става с foreach

 

1
22/11/2016 17:38:24
Martin000 avatar Martin000 115 Точки

Това е моето решение на php. https://pastebin.com/JdZ5FbRA

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