#include <stdio.h>
int** addMatrix(int a[3][3], int b[3][3]){
int i,j;
int **result
= (int **)malloc(3 * sizeof(int *)); int row;
for (row = 0; row < 3; row++) {
result
[row
] = (int *)malloc(3* sizeof(int)); }
for(i=0;i<3;i++){
for(j=0;j<3;j++){
result[i][j]=0;
result[i][j]=a[i][j]+b[i][j];
}
}
return result;
}
int** mulMatrix(int a[3][3],int b[3][3]){
int **result
= (int **)malloc(3 * sizeof(int *)); int row;
for (row = 0; row < 3; row++) {
result
[row
] = (int *)malloc(3* sizeof(int)); }
int i,j,k;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
result[i][j] = 0;
}
}
for(i=0;i<3;i++){
for(j=0;j<3;j++){
for(k=0;k<3;k++){
result[i][j] += a[i][k] * b[k][j];
}
}
}
return result;
}
int main(void) {
//Initialisng the matrices
int A[3][3] = {{2,-2,8},{1,3,6},{0,5,4}};
int B[3][3] = {{3,7,3},{5,5,6},{1,2,8}};
int AplusB[3][3];
int **partA = addMatrix(A,B); //returns A+B
int i=0,j=0;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
AplusB[i][j]=partA[i][j];
}
}
int **partB = mulMatrix(A,B); //returns AB
for(i=0;i<3;i++){
for(j=0;j<3;j++){
}
}
int **partC = mulMatrix(AplusB,A); //return (A+B)A
for(i=0;i<3;i++){
for(j=0;j<3;j++){
}
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQqKiBhZGRNYXRyaXgoaW50IGFbM11bM10sIGludCBiWzNdWzNdKXsKCWludCBpLGo7CglpbnQgKipyZXN1bHQgPSAoaW50ICoqKW1hbGxvYygzICogc2l6ZW9mKGludCAqKSk7CglpbnQgcm93OwogICAgZm9yIChyb3cgPSAwOyByb3cgPCAzOyByb3crKykgewogICAgICAgIHJlc3VsdFtyb3ddID0gKGludCAqKW1hbGxvYygzKiBzaXplb2YoaW50KSk7CiAgICB9CiAgICAKCWZvcihpPTA7aTwzO2krKyl7CgkJZm9yKGo9MDtqPDM7aisrKXsKCQkJcmVzdWx0W2ldW2pdPTA7CgkJCXJlc3VsdFtpXVtqXT1hW2ldW2pdK2JbaV1bal07CgkJfQoJfQoJcmV0dXJuIHJlc3VsdDsKfQoKaW50KiogbXVsTWF0cml4KGludCBhWzNdWzNdLGludCBiWzNdWzNdKXsKCWludCAqKnJlc3VsdCA9IChpbnQgKiopbWFsbG9jKDMgKiBzaXplb2YoaW50ICopKTsKCWludCByb3c7CiAgICBmb3IgKHJvdyA9IDA7IHJvdyA8IDM7IHJvdysrKSB7CiAgICAgICAgcmVzdWx0W3Jvd10gPSAoaW50ICopbWFsbG9jKDMqIHNpemVvZihpbnQpKTsKICAgIH0KICAgIAogICAgaW50IGksaixrOwogICAgZm9yKGk9MDtpPDM7aSsrKXsKICAgIAlmb3Ioaj0wO2o8MztqKyspewogICAgCQlyZXN1bHRbaV1bal0gPSAwOwogICAgCX0KICAgIH0KICAgIAogICAgZm9yKGk9MDtpPDM7aSsrKXsKICAgIAlmb3Ioaj0wO2o8MztqKyspewogICAgCQlmb3Ioaz0wO2s8MztrKyspewogICAgCQkJcmVzdWx0W2ldW2pdICs9IGFbaV1ba10gKiBiW2tdW2pdOwogICAgCQl9CiAgICAJfQogICAgfQoJcmV0dXJuIHJlc3VsdDsKfQoKaW50IG1haW4odm9pZCkgewoJLy9Jbml0aWFsaXNuZyB0aGUgbWF0cmljZXMKCWludCBBWzNdWzNdID0ge3syLC0yLDh9LHsxLDMsNn0sezAsNSw0fX07CglpbnQgQlszXVszXSA9IHt7Myw3LDN9LHs1LDUsNn0sezEsMiw4fX07CglpbnQgQXBsdXNCWzNdWzNdOwoJaW50ICoqcGFydEEgPSBhZGRNYXRyaXgoQSxCKTsgLy9yZXR1cm5zIEErQgoJaW50IGk9MCxqPTA7CglwcmludGYoIkFuc3dlciBBLiBcbiIpOwoJZm9yKGk9MDtpPDM7aSsrKXsKCQlmb3Ioaj0wO2o8MztqKyspewoJCQlBcGx1c0JbaV1bal09cGFydEFbaV1bal07CgkJCXByaW50ZigiJWRcdCIscGFydEFbaV1bal0pOwoJCX0KCQlwcmludGYoIlxuIik7Cgl9CgkKCWludCAqKnBhcnRCID0gbXVsTWF0cml4KEEsQik7IC8vcmV0dXJucyBBQgoJcHJpbnRmKCJBbnN3ZXIgQi4gXG4iKTsKCWZvcihpPTA7aTwzO2krKyl7CgkJZm9yKGo9MDtqPDM7aisrKXsKCQkJcHJpbnRmKCIlZFx0IixwYXJ0QltpXVtqXSk7CgkJfQoJCXByaW50ZigiXG4iKTsKCX0KCQoJaW50ICoqcGFydEMgPSBtdWxNYXRyaXgoQXBsdXNCLEEpOyAvL3JldHVybiAoQStCKUEKCXByaW50ZigiQW5zd2VyIEMuIFxuIik7Cglmb3IoaT0wO2k8MztpKyspewoJCWZvcihqPTA7ajwzO2orKyl7CgkJCXByaW50ZigiJWRcdCIscGFydENbaV1bal0pOwoJCX0KCQlwcmludGYoIlxuIik7Cgl9CglyZXR1cm4gMDsKfQo=