Язык С

01.01.2001

Язык С
double det(double A[4][4]){
double d1,d2,d3,d4,D;
d1=A[1][1]*A[2][2]*A[3][3]+A[1][2]*A[2][3]*A[3][1]+A[1][3]*A[2][1]*A[3][2]-
A[3][1]*A[2][2]*A[1][3]-A[3][2]*A[2][3]*A[1][1]-A[3][3]*A[2][1]*A[1][2];

d2=A[1][0]*A[2][2]*A[3][3]+A[1][2]*A[2][3]*A[3][0]+A[1][3]*A[2][0]*A[3][2]-
A[3][0]*A[2][2]*A[1][3]-A[3][2]*A[2][3]*A[1][0]-A[3][3]*A[2][0]*A[1][2];

d3=A[1][0]*A[2][1]*A[3][3]+A[1][1]*A[2][3]*A[3][0]+A[1][3]*A[2][0]*A[3][1]-
A[1][3]*A[2][1]*A[3][0]-A[3][1]*A[2][3]*A[1][0]-A[3][3]*A[2][0]*A[1][1];

d4=A[1][0]*A[2][1]*A[3][2]+A[1][1]*A[2][2]*A[3][0]+A[1][2]*A[2][0]*A[3][1]-
A[1][2]*A[2][1]*A[3][0]-A[3][1]*A[2][2]*A[1][0]-A[3][2]*A[2][0]*A[1][1];

D=A[0][0]*d1-A[0][1]*d2+A[0][2]*d3-A[0][3]*d4;
return D;}
int main() {
glavn[0][0]=N;
glavn[0][1]=sum_1(X1);
glavn[0][2]=sum_1(X2);
glavn[0][3]=sum_1(X3);
glavn[1][0]=sum_1(X1);
glavn[1][1]=sum_2(X1,X1);
glavn[1][2]=sum_2(X1,X2);
glavn[1][3]=sum_2(X1,X3);
glavn[2][0]=sum_1(X2);
glavn[2][1]=sum_2(X1,X2);
glavn[2][2]=sum_2(X2,X2);
glavn[2][3]=sum_2(X2,X3);
glavn[3][0]=sum_1(X3);
glavn[3][1]=sum_2(X1,X3);
glavn[3][2]=sum_2(X2,X3);
glavn[3][3]=sum_2(X3,X3);
printf("Общий определитель равен %g", det(glavn[4][4]);

ЧТо не верно в последней строке?

  • не определены. Объявляется массив 4х4, отсчет индексов идет так - первый индекс: 0,1,2,3; второй индекс 0,1,2,3
    Можно максимум вывести только для [3][3].
    Если хочешь вывести [4][4], то начни определять не с [0][0], а с [1][1]
  • Скобки не хватает? :)
    printf("Общий определитель равен %g", det(glavn));
  • Сделай так:
    printf("Общий определитель равен %g", det(glavn));

Вас заинтересует