stwórz funkcje string ZwrocTablice

0
  1. Stwórz funkcję string ZwrocTablice(int[] tab, int i), która zwraca zawartość tablicy w postaci tekstowej wykorzystując rekurencję, w formacie bez spacji oraz znaku przejścia do nowej linii, tzn:

[3,4,5,6,7,2,3]

Skorzystaj z:

string log = "[";
log+=tab[i]+",";

class Program
    {
        static string ZwrocTablice(int[] tab, int i)
        {
            string log = "[";
            log += tab[i] + ",";

            if (i != tab.Length - 1) 
            {
                if (i == 0)
                    Console.Write(log);
                Console.Write(i + ",");
                ZwrocTablice(tab, i + 1);

            }
            Console.Write(i);
            return  "";

        }
        static void Main(string[] args)
        {
            

            int[] tab = { 1, 2, 3, 4, 5 };
     
            ZwrocTablice(tab, 0);
            Console.Write("]");
            Console.ReadKey();
        }
    }
1

Nie chce Ci wrzucać gotowego rozwiązania na tym etapie. Żeby rozwiązać to zadanie musisz wykorzystać fakt, że funkcja zwraca stringa. Którego możesz wykorzystać w następujący sposób: log+ZwrocTablice(...). Dodatkowo musisz zapewnić, żeby program przestał wywoływać funkcje po spełnieniu odpowiedniego warunku.

3

przeanalizuj to:

static string ZwrocTablice(int[] tab, int i)
{
    if(tab.Length == 0) return "[]";
    if(tab.Length == i) return "]";
    return (i == 0  ? "[" : ",") + tab[i] + ZwrocTablice(tab, i+1);
}
0
    class Program
    {
        static string ZwrocTablice(int[] tab, int i)
        {
            string log = "[";
            log += tab[i] + ",";


                if (i == tab.Length) return "";
                if (i == 0) return log + ZwrocTablice(tab, i+1);
                
            string tablica = tab[i] + "," + ZwrocTablice(tab, i + 1);
            return tablica;
            

        }
        static void Main(string[] args)
        {
            int[] tab = { 1, 2, 3, 4, 5 };
            ZwrocTablice(tab,0);
            Console.Write(ZwrocTablice(tab, 0));
            Console.Write("]");
            Console.ReadKey();
        }
    }

zmieniłem kod ale nadal po wywołaniu ZwrocTablice po warunku i==0 funkcja się kończy. Chyba powinienem dopisać jakiś warunek ale nie wiem jaki...

0

Dostałeś gotowy kod od @katelx

static string ZwrocTablice(int[] tab, int i)
{
    if (tab.Length == 0) return "[]";
    if (tab.Length == i) return "]";
    return (i == 0 ? "[" : ",") + tab[i] + ZwrocTablice(tab, i + 1);
}

static void Main(string[] args)
{
    int[] tab = { 1,2,3,4};            
    Console.Write(ZwrocTablice(tab, 0));            
    Console.ReadKey()
}
1

@szydlak: może jeszcze skompiluj mu ten kod?

1 użytkowników online, w tym zalogowanych: 0, gości: 1