求 寻找这个程序的错误?用Dev-C++

来源:百度知道 编辑:UC知道 时间:2024/05/29 09:47:28
#include<stdio.h>
main()
{
static int zero(int);
int one(int);
int two(int,int);
int a[8][8]={{0}};
int c,i,j,(*p)[8];
for(j=0,p=a;j<8;j++,p++)
{for(i=0;i<8;(*p)[i++])
{ c=zero(j)+one(i)+two(j,i);
if(c!=0)
a[j][i]=1;
break;
}}
for(j=0;j<8;j++)
{for(i=0;i<8;i++)
printf("%d",a[j][i]);
printf("\n");}

static int zero(int p)
{int i,s=0;
for(i=0;i<8;i++)
s=a[p][i]+s;
return(s);}

int one(int k)
{ int j,s=0;
for(j=0;j<8;j++)
s=s+a[j][k];
return(s);}

int two(int r,int y)
{ int m,n,s=0;
for(m=r-1,n=y-1;m>=0,n>=0;m--,n--)
s=s+a[m][n];
for(r+=1,y+=1;r<8,y<8;r++,y++)
s=s+a[r][y];
reyurn(s);}

懒得找你的错误了……随便改了改,反正VC6通过了……只不过结果是几行0。

首先就是,你的几个函数都用到了数组a,因此它的定义应该放到main以外。
还有就是函数前的static我看了看应该是不必要的,我删了。
最后,你的main函数那里少了个花括号……

#include<stdio.h>
int a[8][8]={{0}};

int zero(int p){
int i,s=0;
for(i=0;i<8;i++)
s=a[p][i]+s;
return(s);}

int one(int k)
{ int j,s=0;
for(j=0;j<8;j++)
s=s+a[j][k];
return(s);}

int two(int r,int y)
{ int m,n,s=0;
for(m=r-1,n=y-1;m>=0,n>=0;m--,n--)
s=s+a[m][n];
for(r+=1,y+=1;r<8,y<8;r++,y++)
s=s+a[r][y];
return(s);}

main()
{

int c,i,j,(*p)[8];
for(j=0,p=a;j<8;j++,p++){
for(i=0;i<8;(*p)[i++]){
c=zero(j)+one(i)+two(j,i);
if(c!=0)
a[j][i]=1;
break;
}
}
for(j=0;j<8;j++){
for(i=0;i<8;i++)
printf("%d",a[j][i]);
printf("\n");
}
}