Nie mogę znaleźć błędu w programie liczącym iloczyn macierzy

0

Prosiłbym o pomoc w znalezieniu błędu w programie

Console.Write("podaj ilosc wierszy pierwszej macierzy:");
int wiersze1 = int.Parse(Console.ReadLine());
Console.Write("podaj ilosc kolumn pierwszej macierzy:");
int kolumny1 = int.Parse(Console.ReadLine());
int[,] tab1 = new int[wiersze1, kolumny1];

for (int i=0; i<wiersze1;i++ )
    {
        Console.WriteLine("podaj elementy {0} wiersza", i+1);
        for (int j = 0; j < kolumny1; j++)
        {
            tab1[i, j] = int.Parse(Console.ReadLine());
        }
    }

Console.WriteLine("twoja 1 macierz to:");
for (int i = 0; i < wiersze1  ; i++)
{
    for (int j = 0; j < kolumny1; j++)
    {
        Console.Write("{0} ", tab1[i, j]);
    }
    Console.WriteLine();
}


///2macierz

Console.Write("podaj ilosc wierszy drugiej macierzy:");
int wiersze2 = int.Parse(Console.ReadLine());
Console.Write("podaj ilosc kolumn drugiej macierzy:");
int kolumny2 = int.Parse(Console.ReadLine());

int[,] tab2 = new int[wiersze2, kolumny2];
int[,] tab1tab2 = new int[wiersze1, kolumny1];

for (int i = 0; i < wiersze2; i++)
{
    Console.WriteLine("podaj elementy {0} wiersza", i + 1);
    for (int j = 0; j < kolumny2; j++)
    {
        tab2[i, j] = int.Parse(Console.ReadLine());
    }
}

Console.WriteLine("twoja 2 macierz to:");
for (int i = 0; i < wiersze2; i++)
{
    for (int j = 0; j < kolumny2; j++)
    {
        Console.Write("{0} ", tab2[i, j]);
    }
    Console.WriteLine();
}

///mnozenie
Console.WriteLine("\nMnozenie macierzy:");
for (int i = 0; i < wiersze1; i++)
{
    for (int k = 0; k < kolumny2; k++)
    {
        for (int j = 0; j < kolumny1; j++)
        {
            tab1tab2[i, k] += tab1[i, j] * tab2[j, k];
        }
    }
}

Console.WriteLine("\nM1 x M2: ");
for (int i = 0; i < wiersze1; i++)
{
    for (int k = 0; k < kolumny2; k++)
    {
        Console.Write("{0} ", tab1tab2[i, k]);
    }
}
0

kolumny1 muszą być równe wiersze2, tak podajesz?

0
lion137 napisał(a):

kolumny1 muszą być równe wiersze2, tak podajesz?

Zrzut ekranu 2023-12-07 200413.png
tak podaje tutaj

0

OK, i jaki jest błąd?

0
lion137 napisał(a):

OK, i jaki jest błąd?

jak na zdjeciu, indeks wykraczał poza granice tablicy

0
lion137 napisał(a):

OK, i jaki jest błąd?

Problem rozwiązany bład był w deklaracji wielkości macierzy trzeba było zmienic

kolumny1 

na

kolumny2

i program działa
Mam tylko jeszcze problem aby macierz wynikowa była wyświetlana jako macierz a nie jako jeden ciąg liczb

0

Mam tylko jeszcze problem aby macierz wynikowa była wyświetlana jako macierz a nie jako jeden ciąg liczb

Wypisz znak nowej linii po zakończeniu wypisywania wiersza

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