一道C程序出现declaration syntax error,高手请进
#include "stdio.h "
#define true 1;
#define false 0;
bool is(int *a)
{
int n[14]={0,0,0,0,0,0,0,0,0,0,0,0,0,0};
for(int i=0;i <7;i++)
n[a[i]]++;
for(int k=0;k <10;k++)
{
if((n[0]+n[k]+n[k+1]+n[k+2]+n[k+3]+n[k+4])> 4)
return true;
}
return false;
}
void main()
{
int a[7]={9,1,2,3,4,7,10};
if(is(a))
printf( "true!!! ");
else
printf( "false!!! ");
}
[解决办法]
#include "stdio.h "
#define true 1;
#define false 0;
bool is(int *a) //既然你都define了,这里就不要用bool了,用int
{
int n[14]={0,0,0,0,0,0,0,0,0,0,0,0,0,0};
for(int i=0;i <7;i++) //i在循环外面定义
n[a[i]]++;
for(int k=0;k <10;k++)//k在循环外面定义
{
if((n[0]+n[k]+n[k+1]+n[k+2]+n[k+3]+n[k+4])> 4)
return true;
}
return false;
}
void main()
{
int a[7]={9,1,2,3,4,7,10};
if(is(a))
printf( "true!!! ");
else
printf( "false!!! ");
}
===============以下函数在TC2.0中编译通过================
#include "stdio.h "
#define true 1;
#define false 0;
int is(int *a)
{
int i,k;
int n[14]={0,0,0,0,0,0,0,0,0,0,0,0,0,0};
for(i=0;i <7;i++)
n[a[i]]++;
for(k=0;k <10;k++)
{
if((n[0]+n[k]+n[k+1]+n[k+2]+n[k+3]+n[k+4])> 4)
return true;
}
return false;
}
void main()
{
int a[7]={9,1,2,3,4,7,10};
if(is(a))
printf( "true!!! ");
else
printf( "false!!! ");
}