Вот код чище с распечатками. Я действительно не понимаю, что вы пытаетесь сделать. Все -1 l oop сбивает с толку, и выходной пример не ясен.
Я думаю, вы пытаетесь просто добавить результат умножения в новый массив? Но что означает -1?
#include <stdio.h>
int main()
{
int n, m, i,l, j,k,p;
n =5;
m = 5;
int a[5] = {1}, b[5] = {1};
int c[m][n+m];
k = 0;
l = m+n-1;
p = 2;
for(i = 0; i<m; i++)
{
printf("\n");
for(j = 0; j<m+n; j++)
{
c[i][j] = -1;
printf("[%i][%i]:%i ",i,j,c[i][j]);
}
}
printf("\n");
for(i = m-1; i>=0; i--)
{
printf("\n");
for(j = n-1; j>=0; j--)
{
c[k][l] = a[j]*b[i];
printf("[%i][%i]: %i x %i = %i ",k,l,a[j],b[i],c[k][l]);
l--;
}
l = m+n-1;
k++;
}
printf("\n\n");
for(i = 0; i<m; i++)
{
for(j = 0; j<m+n; j++)
{
printf("%d ", c[i][j]);
}
printf("\n");
}
}
Если вы объясните больше о том, что вы пытаетесь сделать, я могу отредактировать это, чтобы помочь.
Например, если ваш массив 'a' равен {2,4}, а ваш массив 'b' - {3,6}. Каков ожидаемый вывод массива 'c'.
c = {? }