suma wierszy i kolumn w tablicy

0

witam pewnie wiekszosci wyda sie smieszne ze o to pytam ale mam programowanie w C# na informatyce na uczelni i nie zabardzo wszystko kumam. na zaliczenie semestru mam zrobic projekt w ktorym bedzie mozna po wpisaniu liczby wierszy i kolumn i wpisaniu wartosci do tablicy wypisac sumy w poszczegolnych wierszach i kolumnach. jak do tej pory zrobilem tyle i sie zawiesilem bo niby mi go kompiluje ale po wpisaniu wartosci do tablicy sie wiesza...:

namespace tablicaConsole
{
class tablica
{
public static void wczytaj(double[,] x)
{

        for (int i = 0; i < x.Length; i++)
        {
            Console.Write("Wprowadz  do kolumny{0}: ", i);
            x[i,0] = Convert.ToDouble(Console.ReadLine());
            for (int j = 0; j < x.Length; j++)
            {
                Console.Write("Wprowadz  do wiersza{0}: ", j);
                x[0, j] = Convert.ToDouble(Console.ReadLine());
            }
        }

    }
    public static void oblicz(double[] a, double[] b, double[,] x)
    {
       
        for (int i = 0; i < a.Length; i++)
        {
            a[i] += x[0, i];
            for (int c = 0; c < b.Length; c++)
            {
                b[c] += x[c, 0];

            }

        } 
       
       
        Console.WriteLine(a);
        Console.WriteLine(b);
    }
}

}

namespace tablicaConsole
{
class Program
{
static void Main(string[] args)
{
int w = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("wpisz liczbe wierszy:", w);
int k = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("wpisz liczbe wierszy:", k);

        double[,] x = new double[k, w];
        double[] a = new double[w];
        double[] b = new double[k];
        tablica.wczytaj(x);
        tablica.oblicz(a, b, x);
    }
}

prosze bardzo o pomoc.
i z gory dziekuje :)

0

x.Length - zwraca Ci liczbe wszystkich elementow, dlatego wykraczales z indexem poza wymiar
tablicy, sprobuj odpalic ten kod, jest tu pare zastrzezej ... takze sie nie wzoruj ... ;-)

namespace tablicaConsole
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("wpisz liczbe kolumn: ");
int k = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("wpisz liczbe wierszy: ");
int w = Convert.ToInt32(Console.ReadLine());

        double[,] x = new double[k, w];
        double[] a = new double[k];
        double[] b = new double[w];
        tablica.wczytaj(x, k, w);
        tablica.pokaz_tablice(x, k, w);
        tablica.oblicz(a, b, x, k, w);
        tablica.pokaz_wynik(a, b);
    }
}

class tablica
{
    public static void wczytaj(double[,] x, int k, int w)
    {
        Console.WriteLine("________________________________________");
        Console.WriteLine("Ilosc elementow w tablicy: {0}", x.Length);
        for (int kk = 0; kk < k; kk++)
        {
            for (int ww = 0; ww < w; ww++)
            {
                Console.Write("Wprowadz dane do indexu {0}, {1}: ", kk, ww);
                x[kk, ww] = Convert.ToDouble(Console.ReadLine());
            }
        }
    }


    public static void pokaz_tablice(double[,] x, int k, int w)
    {
        Console.WriteLine("________________________________________");
        Console.WriteLine("Zawartosc tablicy:");
        for (int ww = 0; ww < w; ww++)
        {
            Console.Write("Wiersz {0}: [ ", ww);
            for (int kk = 0; kk < k; kk++)
            {
                Console.Write("{0} ", x[kk, ww]);                    
            }
            Console.WriteLine("]");
        }
    }

    public static void oblicz(double[] a, double[] b, double[,] x, int k, int w)
    {             
        // suma w kolumnach
        for (int i = 0; i < a.Length; i++)
        {
            for (int ww = 0; ww < w; ww++)
            {
                a[i] += x[i, ww];
            }
        }

        // suma w wierszach
        for (int i = 0; i < b.Length; i++)
        {
            for (int kk = 0; kk < k; kk++)
            {
                b[i] += x[kk, i];
            }
        }  
    }

    public static void pokaz_wynik(double[] a, double[] b)
    {
        Console.WriteLine("________________________________________");
        // wyniki w kolumnach
        for (int i = 0; i < a.Length; i++)
        {
            Console.WriteLine("Suma w kolumnie {0}: {1}", i, a[i]);
        }

        // wyniki w wierszach
        for (int i = 0; i < b.Length; i++)
        {
            Console.WriteLine("Suma w wierszu {0}: {1}", i, b[i]);
        }
    }
}

}

0
xenon26 napisał(a)

na zaliczenie semestru mam zrobic projekt w ktorym bedzie mozna po wpisaniu liczby wierszy i kolumn i wpisaniu wartosci do tablicy wypisac sumy w poszczegolnych wierszach i kolumnach.

... a później pisze taki w CV "umiejętność programowania", przychodzi na rozmowę i ani me ani be; ech!

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