想问一下main函数的参数和返回值是什么呀?和调用的函数的参数和返回值是一样的吗?
[此贴子已经被作者于2006-11-19 13:23:04编辑过]

该学习了。。。
#include <stdio.h>
#include <stdlib.h>
#define N 1000
int main()
{
int n, i, j;
int a[N][N];
int sum(int a[][N], int n);
while((scanf("%d", &n))== 1&&(n != 0))
{
for(i = 1;i <= n;i ++)
{
for(j = 1;j <= n;j ++)
{
scanf("%d", &a[i][j]);
}
printf("\n");
}
sum(a, n);
}
return 0;
}
int sum(int a[][N], int n)
{
int sum1 = 0, i ,j, sum2 = 0, sum = 0;
if(n == 1)
sum = a[n][n];
else
{
for(i = 1;i <= n;i ++)
for(j = 1;j <= n;j ++)
{
if((i + j)%2 == 0)
sum1 += a[i][j]*sum(a[][N], (n - 1));
else
sum2 += a[i][j]*sum(a[][N], (n - 1))*(-1);
}
}
sum = sum1 + sum2;
printf("%d\n", sum);
return 0;
}
main.c:39: error: syntax error before ']' token
:: === Build finished: 1 errors, 0 warnings ===
下面的一行和上面的差不多!为什么上面的有错误!而下面的没有错误呢!
这是这道题的原题!
计算行列式
同学们在线性代数课上已经学习过有关行列式的概念. 这次实验我们就利用行列式展开定理编程计算低阶行列式的值
首先来简单复习一下, 已知定义在整数域 Z 上的 n 阶行列式 D:
D 的值等于它的任意行的所有元素与其代数余子式乘积的和. 即,
其中:
输入
输入可能包含多组测试数据. 每组数据的第一行是一个整数 n (0 ≤ n ≤ 9), 代表行列式的阶数; 其后有 n 行, 每行 n 个整数, 代表行列式的元素, 数值之间用空格分隔. n 等于 0 表示输入结束.
输出
对于输入数据中每个阶大于 0 的行列式, 输出其值, 后跟一换行符.
输入样例
3
1 0 0
0 1 0
0 0 1
4
1 2 3 4
5 0 0 0
-1 2 3 6
5 -1 1 -2
0
输出样例
1
50
呵呵!帮忙看一下这个程序错在了那里?
#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;
}