呵呵!帮忙看一下这个程序错在了那里?
#include <stdio.h>
#include <stdlib.h>
#define MAX 10
int past(int a[][],int x);
int main()
{
int b[MAX][MAX];
int i,e,size,sum;
while (scanf("%d",&size)&&size!=0)
{
for (i=1;i<=size;i++)
{
for (e=1;e<=size;e++)
{
scanf("%d",&b[i][e]);
}
}
sum=past(b,size);
printf("%d\n",sum);
}
return 0;
}
int past(int a[][MAX],int x)
{
int i,e,f,sum=0,frist=0,rest,nest,c[MAX][MAX],front,tow;
if (x==1) return a[1][1];
if (x==2)
{
sum=a[1][1]*a[2][2]-a[1][2]*a[2][1];
return sum;
}
else
{
rest=x-1;
for (i=1;i<=x;i++)
{
frist=a[1][i];
for (e=1;e<=rest;e++)
{
front=e+1;
for (f=1;f<=rest;f++)
{
if (f<i) c[e][f]=a[front][f];
else
{
tow=f+1;
c[e][f]=a[front][tow];
}
}
}
nest=(1+i)%2;
if (nest==0) sum=sum+frist*past(c,rest);
else sum=sum-frist*past(c,rest);
}
return sum;
}
return 0;
}