Sumowanie elementów tablicy. 2 Metody. Funkcja Main nie chce się wywołać.

0

Witam,

Poniżej znajduje się kod który napisałem. W pierwszej Metodzie chciałem, aby użytkownik wpisał ilość elementów swojej tablicy oraz później jej elementy. W drugiej natomiast nastąpiłoby sumowanie elementów podanej tablicy.

static int PobierzEle(int[] t)
        {
            Console.WriteLine("Podaj Elementy tablicy");
            int x = Convert.ToInt32(Console.ReadLine());
            int[] y = new int[x];
            for (int i = 0; i < x; i++)
            {
                Console.WriteLine("Podaj Element {0}", y[i]);
                y[i] = Convert.ToInt32(Console.ReadLine());
            }

            return x;


        }

        static int[] SumaTab(int[] t)
        {
            int[] A = new int[PobierzEle(t)];
            
            int wynik = 0;
            for (int i = 0; i < A.Length;  i++)
            {
                wynik = wynik + A[i];
            }

            Console.WriteLine("Suma elementów twojej tablicy to: {0}",wynik);

            return A;
        }


        static void Main(string[] args)
        {
            int[] d = new int[SumaTab(t)];
            SumaTab(PobierzEle);
            Console.ReadKey();

        }

Mój problem polega na tym, że nie wiem jak sformułować linie kodu, aby wywołać te dwie metody w Main'ie.

0

Elementy wpisałeś do jednej tablicy y a sumujesz zupełnie inną A, to czemu się dziwisz.

  1. Zwracaj y.
  2. Zapoznaj się z operatorem +=
  3. Zapoznaj się ze znaczeniem opieratora i++ - może zwyczajnie nie wiesz że tworzy on kopie poprzedniej wartości i, które to tworzenie kompilator dzielnie eliminuje bo nie jest w kodzie potrzebna.
0

Użyj Linq i będzie prościej:

using System;
using System.Linq;

public class Program {

    private static void SetElements(int[] array) {
        var rnd = new Random();
        for (int i = 0; i < array.Length; ++i) array[i] = rnd.Next(0, 11);
    }

    private static void Print(int[] array) {
        array.ToList().ForEach(element => { Console.Write("{0} ", element); });
    }

    private static int Sum(int[] array) {
        return array.Sum();
    }

    public static void Main() {
        var array = new int[10];
        SetElements(array);
        Print(array);
        Console.WriteLine("\nSum: {0}\n", Sum(array));
    }
}

http://ideone.com/XQpRSf

PS: Jak pewnie już zauważyłeś dwóch funkcji mogłoby w ogóle nie być, bo na dobrą sprawę tablica jest dostępna od razu w mainie. :)

0

@grzesiek51114

Tak wiem, ale robię takie przykłady, aby na zajęcia się nauczyć bo wymagają dobrego obycia w Metodach. :) Dzięki za inną wersję :D

@_13th_Dragon

Dziękuje :) Miałem inne podejście w głowie co do tego, ale teraz już naprawione.

Także, temat do zamknięcia. :)

0

...bo wymagają dobrego obycia w Metodach.

Przecież użycie Linq wcale tego nie wyklucza. Wręcz odwrotnie...

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