Умножение матриц - 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]);