Умножение матриц - C# (178634)

Узнай цену своей работы

Формулировка задачи:

Подскажите, где ошибка? Даже если ввести 2 квадратных матрицы (пока проверку не сделал), то в label выводятся какие то непонятные(слишком большие) числа.
 private void button2_Click(object sender, EventArgs e)
        {
            int sh = 0;
            c.lenght = a.lenght;
            c.widht = b.widht;
            a.arr = new int[a.lenght,a.widht];
            b.arr = new int[b.lenght, b.widht];
            c.arr = new int[c.lenght, c.widht];
            string mda = textBox6.Text;
            string mda1 = textBox5.Text;
            String[] tmp = mda.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
            String[] tmp1 = mda1.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
           
            //////////////////////
            for(int i=0;i<a.lenght; i++)
            {
                for (int j = 0; j < a.widht; j++)
                {
                    a.arr[i,j]= Convert.ToInt32(tmp[sh]);
                    sh++;
                }
            }
            sh = 0;
            /////////////
            for (int i = 0; i < b.lenght; i++)
            {
                for (int j = 0; j < b.widht; j++)
                {
                    b.arr[i, j] = Convert.ToInt32(mda1[sh]);
                    sh++;
                }
            }
           
            ///////////////////////
            for(int i=0;i<a.lenght;i++)
            {
                for (int j = 0; j <b.widht; j++)
                {
                    c.arr[i, j] = 0;
                    for (int k = 0; k <b.lenght; k++)
                    {                        
                        c.arr[i, j] += a.arr[i, k] * b.arr[k, j];
                    }
                }
            }
            //////////////////
            label1.Text = "";
            for (int i = 0; i < c.lenght; i++)
            {
                for (int j = 0; j < c.widht; j++)
                {
                    label1.Text = label1.Text + c.arr[i, j].ToString() + " ";
                }
                label1.Text = label1.Text + "\n";
            }
        }

Решение задачи: «Умножение матриц»

textual
Листинг программы
a.arr[i,j]= Convert.ToInt32(tmp[sh]);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4 из 5