编译错误error C2143: syntax error : missing ';' before 'type'

来源:百度知道 编辑:UC知道 时间:2024/06/05 06:46:04
#include<stdio.h>
void main()
{int N,s,i,j;
scanf("%d",&N);
int a[N][N],(*p)[N]=&a;
for(i=0,j=0;i<N;i++,j++)
scanf("%d",&a[i][j]);
int fun(int (*q)[N]);
s=fun(p);
printf("%d",s);
}
int fun(int (*q)[N])
{int s=0,i,j;
for(i=0,j=0;i<N;i++,j++)
s=s+q[i][j]+q[i][N-j-1];
return s;
}

函数没声明啊。在int N,s,i,j; 加上int fun(int (*q)[N]) ;

首先你得先声明函数fun,然后才能调用,还有看你的main里面,读N,再int a[N][N],这就无敌错了,因为你这是属于静态分配的数组,大小必须得是常数,你这是变量,而int a[10],就行,你如果想动态的话,需要用malloc或者new操作符(别忘了free或delete),你的fun函数传的参数没看懂,C预言好好学,然后学C++