Я не собираюсь читать весь ваш код. Как я вижу, это дополнительная часть
for(i=0;i<r1;i++)
for(j=0;j<c1;j++)
C[i][j]=A[i][j]+B[i][j];
Я не думаю, что это можно улучшить по сложности. Что касается других типов микрооптимизации, таких как выполнение ++i
вместо i++
или изменение порядка циклов и т. Д. - я думаю, что вам не следует беспокоиться об этом, пока вы не запустите профилировщик, который покажет вам, что это узкие места вашей работы. Помните, преждевременная оптимизация - корень всего зла :)