#include <stdio.h>
#include <string.h>
int main()
{
// declare itertives and matrices
int i, j, k, rows0, cols0, rows1, cols1, matrix0[10][10], matrix1[10][10], matrix2[10][10];
//printf("Number of Rows and columns shouldn't exceed 10\n");
//printf("Enter number of rows and columns for first Matrix\n");
//printf("Enter number of rows: ");
//scanf("%d", &rows0);
//printf("Enter number of columns: ");
//scanf("%d", &cols0);
rows0 = cols0 = 3;
//printf("Enter number of rows and columns for second Matrix\n");
//printf("Enter number of rows: ");
//scanf("%d", &rows1);
//printf("Enter number of columns: ");
//scanf("%d", &cols1);
rows1 = cols1 = 3;
if (cols0!=rows1)
{
printf("Number of columns in first matrix should be equal to number of rows in second matrix\n"); return 0;
}
//printf("Input values into first Matrix\n");
//for(i = 0; i < rows0; i++)
//{
// printf("Input values in row %d with each value separated with space\n", i);
// for(j=0; j< cols0; j++)
// {
// scanf("%d", &matrix0[i][j]);
// }
//}
memcpy(matrix0
[0], (int[]){ 1, 2, -1}, 3*sizeof (int)); memcpy(matrix0
[1], (int[]){ 3, 2, 0}, 3*sizeof (int)); memcpy(matrix0
[2], (int[]){-4, 0, 2}, 3*sizeof (int));
//printf("Input values into second Matrix\n");
//for(i = 0; i < rows1; i++)
//{
// printf("Input values in row %d with each value separated with space\n", i);
// for(j=0; j< cols1; j++)
// {
// scanf("%d", &matrix1[i][j]);
// }
//}
memcpy(matrix1
[0], (int[]){ 3, 4, 2}, 3*sizeof (int)); memcpy(matrix1
[1], (int[]){ 0, 1, 0}, 3*sizeof (int)); memcpy(matrix1
[2], (int[]){-2, 0, 1}, 3*sizeof (int));
// Matrix multiplication
for (i=0; i<rows0; i++)
{
for (j=0; j< cols1; j++)
{
matrix2[i][j]=0;
for(k=0;k<cols1;k++)
{
matrix2[i][j]+=(matrix0[i][k]*matrix1[k][j]);
}
}
}
printf("Resultant matrix after matrix multiplication is\n"); for(i=0; i < rows0; i++)
{
for(j=0; j<cols1; j++)
{
}
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCmludCBtYWluKCkKewogICAgLy8gZGVjbGFyZSBpdGVydGl2ZXMgYW5kIG1hdHJpY2VzIAogICAgaW50IGksIGosIGssIHJvd3MwLCBjb2xzMCwgcm93czEsIGNvbHMxLCBtYXRyaXgwWzEwXVsxMF0sIG1hdHJpeDFbMTBdWzEwXSwgbWF0cml4MlsxMF1bMTBdOwogICAgLy9wcmludGYoIk51bWJlciBvZiBSb3dzIGFuZCBjb2x1bW5zIHNob3VsZG4ndCBleGNlZWQgMTBcbiIpOwogICAgLy9wcmludGYoIkVudGVyIG51bWJlciBvZiByb3dzIGFuZCBjb2x1bW5zIGZvciBmaXJzdCBNYXRyaXhcbiIpOwogICAgLy9wcmludGYoIkVudGVyIG51bWJlciBvZiByb3dzOiAiKTsKICAgIC8vc2NhbmYoIiVkIiwgJnJvd3MwKTsKICAgIC8vcHJpbnRmKCJFbnRlciBudW1iZXIgb2YgY29sdW1uczogIik7CiAgICAvL3NjYW5mKCIlZCIsICZjb2xzMCk7CiAgICByb3dzMCA9IGNvbHMwID0gMzsKCiAgICAvL3ByaW50ZigiRW50ZXIgbnVtYmVyIG9mIHJvd3MgYW5kIGNvbHVtbnMgZm9yIHNlY29uZCBNYXRyaXhcbiIpOwogICAgLy9wcmludGYoIkVudGVyIG51bWJlciBvZiByb3dzOiAiKTsKICAgIC8vc2NhbmYoIiVkIiwgJnJvd3MxKTsKICAgIC8vcHJpbnRmKCJFbnRlciBudW1iZXIgb2YgY29sdW1uczogIik7CiAgICAvL3NjYW5mKCIlZCIsICZjb2xzMSk7CiAgICByb3dzMSA9IGNvbHMxID0gMzsKCiAgICBpZiAoY29sczAhPXJvd3MxKQogICAgewogICAgICAgIHByaW50ZigiTnVtYmVyIG9mIGNvbHVtbnMgaW4gZmlyc3QgbWF0cml4IHNob3VsZCBiZSBlcXVhbCB0byBudW1iZXIgb2Ygcm93cyBpbiBzZWNvbmQgbWF0cml4XG4iKTsKICAgICAgICByZXR1cm4gMDsKICAgIH0KCiAgICAvL3ByaW50ZigiSW5wdXQgdmFsdWVzIGludG8gZmlyc3QgTWF0cml4XG4iKTsKCiAgICAvL2ZvcihpID0gMDsgaSA8IHJvd3MwOyBpKyspCiAgICAvL3sKICAgIC8vICAgIHByaW50ZigiSW5wdXQgdmFsdWVzIGluIHJvdyAlZCB3aXRoIGVhY2ggdmFsdWUgc2VwYXJhdGVkIHdpdGggc3BhY2VcbiIsIGkpOwogICAgLy8gICAgZm9yKGo9MDsgajwgY29sczA7IGorKykKICAgIC8vICAgIHsKICAgIC8vICAgICAgICBzY2FuZigiJWQiLCAmbWF0cml4MFtpXVtqXSk7CiAgICAvLyAgICB9CiAgICAvL30KICAgIG1lbWNweShtYXRyaXgwWzBdLCAoaW50W10peyAxLCAyLCAtMX0sIDMqc2l6ZW9mIChpbnQpKTsKICAgIG1lbWNweShtYXRyaXgwWzFdLCAoaW50W10peyAzLCAyLCAgMH0sIDMqc2l6ZW9mIChpbnQpKTsKICAgIG1lbWNweShtYXRyaXgwWzJdLCAoaW50W10pey00LCAwLCAgMn0sIDMqc2l6ZW9mIChpbnQpKTsKCiAgICAvL3ByaW50ZigiSW5wdXQgdmFsdWVzIGludG8gc2Vjb25kIE1hdHJpeFxuIik7CgogICAgLy9mb3IoaSA9IDA7IGkgPCByb3dzMTsgaSsrKQogICAgLy97CiAgICAvLyAgICBwcmludGYoIklucHV0IHZhbHVlcyBpbiByb3cgJWQgd2l0aCBlYWNoIHZhbHVlIHNlcGFyYXRlZCB3aXRoIHNwYWNlXG4iLCBpKTsKICAgIC8vICAgIGZvcihqPTA7IGo8IGNvbHMxOyBqKyspCiAgICAvLyAgICB7CiAgICAvLyAgICAgICAgc2NhbmYoIiVkIiwgJm1hdHJpeDFbaV1bal0pOwogICAgLy8gICAgfQogICAgLy99CiAgICBtZW1jcHkobWF0cml4MVswXSwgKGludFtdKXsgMywgNCwgMn0sIDMqc2l6ZW9mIChpbnQpKTsKICAgIG1lbWNweShtYXRyaXgxWzFdLCAoaW50W10peyAwLCAxLCAwfSwgMypzaXplb2YgKGludCkpOwogICAgbWVtY3B5KG1hdHJpeDFbMl0sIChpbnRbXSl7LTIsIDAsIDF9LCAzKnNpemVvZiAoaW50KSk7CgogICAgLy8gTWF0cml4IG11bHRpcGxpY2F0aW9uCgogICAgZm9yIChpPTA7IGk8cm93czA7IGkrKykKICAgIHsKICAgICAgICBmb3IgKGo9MDsgajwgY29sczE7IGorKykKICAgICAgICB7CiAgICAgICAgICAgIG1hdHJpeDJbaV1bal09MDsKICAgICAgICAgICAgZm9yKGs9MDtrPGNvbHMxO2srKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbWF0cml4MltpXVtqXSs9KG1hdHJpeDBbaV1ba10qbWF0cml4MVtrXVtqXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcHJpbnRmKCJSZXN1bHRhbnQgbWF0cml4IGFmdGVyIG1hdHJpeCBtdWx0aXBsaWNhdGlvbiBpc1xuIik7CiAgICBmb3IoaT0wOyBpIDwgcm93czA7IGkrKykKICAgIHsKICAgICAgICBmb3Ioaj0wOyBqPGNvbHMxOyBqKyspCiAgICAgICAgewogICAgICAgICAgICBwcmludGYoIiVkICIsIG1hdHJpeDJbaV1bal0pOwogICAgICAgIH0KICAgICAgICBwcmludGYoIlxuIik7CiAgICB9Cn0=