读书人

一道C程序出现declaration syntax err

发布时间: 2012-03-25 20:55:17 作者: rapoo

一道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!!! ");
}

读书人网 >C语言

热点推荐