Тема: Підпрограми в С
Необхідно знайти сліди прямокутних матриць. Обчислення сліду матриць слід оформити у вигляді підпрограми.
Через якусь помилку підпрограма видає нулі. Допоможіть знайти помилку будь ласка.
Код(мова С):
#include <stdio.h>
float slid(float A[2][3], float B[3][4], float C[4][5])
{
float Sa[2], Sb[3], Sc[4];
float sla, slb, slc;
for(int k=0;k<3;k++)
{
Sa[k]=A[k][k];
}
for(int k=0;k<3;k++)
{
sla=sla+Sa[k];
}
for(int k=0;k<4;k++)
{
Sb[k]=B[k][k];
}
for(int k=0;k<4;k++)
{
slb=slb+Sb[k];
}
for(int k=0;k<5;k++)
{
Sc[k]=C[k][k];
}
for(int k=0;k<5;k++)
{
slc=slc+Sc[k];
}
return sla, slb, slc;
}
int main(void)
{
float sla, slb, slc;
float A[2][3];
A[0][0]=3.1; A[0][1]=2.6; A[0][2]=5.7; A[0][3]=7.2;
A[1][0]=2.1; A[1][1]=7.7; A[1][2]=3.8; A[1][3]=1.1;
A[2][0]=0.9; A[2][1]=8.4; A[2][2]=1.7; A[2][3]=4.3;
float B[3][4];
B[0][0]=3.4; B[0][1]=4.5; B[0][2]=7.1; B[0][3]=2.5; B[0][4]=3.9;
B[1][0]=1.2; B[1][1]=2.6; B[1][2]=4.9; B[1][3]=9.6; B[1][4]=1.8;
B[2][0]=5.4; B[2][1]=8.7; B[2][2]=3.7; B[2][3]=1.6; B[2][4]=2.2;
B[3][0]=0.5; B[3][1]=1.8; B[3][2]=8.3; B[3][3]=6.4; B[3][4]=2.4;
float C[4][5];
C[0][0]=0.4; C[0][1]=4.5; C[0][2]=7.9; C[0][3]=6.2; C[0][4]=3.7; C[0][5]=2.1;
C[1][0]=3.2; C[1][1]=2.6; C[1][2]=4.3; C[1][3]=3.3; C[1][4]=5.2; C[1][5]=3.6;
C[2][0]=4.1; C[2][1]=3.8; C[2][2]=8.1; C[2][3]=6.5; C[2][4]=2.7; C[2][5]=4.2;
C[3][0]=5.2; C[3][1]=4.5; C[3][2]=2.6; C[3][3]=5.5; C[3][4]=2.2; C[3][5]=3.1;
C[4][0]=3.7; C[4][1]=5.6; C[4][2]=2.7; C[4][3]=7.2; C[4][4]=3.6; C[4][5]=4.2;
printf("sla=%f, slb=%f, slc=%f\n", sla, slb, slc);
return 0;
}