Пионт вышел из ошибки в коде?
он дает правильный вывод до order = 3 после этого он дает неправильный ответ.я не получаю место, где я ошибся plz помогите мне. я просто хочу подсказку
Что я уже пробовал:
#include<stdio.h> #include<math.h> int m; int main() { int i,j; printf("enter order of matrix\n"); scanf("%d",&m); int a[m][m]; printf("enter elements of matrix\n"); for(i=0;i<m;i++) { for(j=0;j<m;j++) {printf("a[%d][%d] = \n",i,j); scanf("%d",&a[i][j]);} } det(m,a); printf("detrminant = %d",det(m,a)); } int det(int x,int a[][x]) { int k,i,j,b[m][m],sum=0; if(x==2) { sum=a[0][0]*a[1][1]-a[0][1]*a[1][0]; return sum; } for(k=0;k<x;k++) { int r=0,s=0; for(i=1;i<m;i++) { for(j=0;j<m;j++) { if(j==k) continue; b[r][s]=a[i][j]; s++; if(j>m-1) { r++; s=0; } } } sum=sum+a[0][k]*pow(-1,k)*det(x-1,b); } return sum; }
Graeme_Grant
Вы пробовали использовать отладчик, установить точку останова, а затем пройти через свой код, чтобы увидеть, что он делает и как он это делает?
Кроме того, ваши имена переменных делают код чрезвычайно трудным для расшифровки того, что он делает. Если бы я ответил тем же, вы бы этого не поняли. Если все сделано правильно, имена будут точно передавать то, что он делает.