error C2059: 语法错误:“类型” 跪求为啥不对啊

#include <stdio.h>
#include <math.h>
int er(int a)
{
int i,j,k;
int b[16]={0},c[16]={0};
for(i=0;i<16;i++)
{
b[i]=(a/int(pow(2.0,i))%2);
}
for(j=0;j<16;j++)
{
if(b[j]!=0&&b[j]!=1)
{c[j]=0;}
c[j]=b[j];
}
for(k=1;k<16;k++)
{
if(c[k]=0)
c[k]=1;
else
c[k]=0;
}
for(i=0;i<16;i++)
{
if(c[15-i]=0)
{ c[15-i]=1;
for(k=0;k<3;k++)
{c[15-i]=0;}
break;
}
}
for(i=0;i<16;i++)
{
printf("%d",c[i]);
}
}
int main(void)
{ int x;
scanf("%d",&x);
printf("%d",er(x));

}

代码修改如下,见注释

#include <stdio.h>
#include <math.h>
int er(int a)
{
    int i,j,k;
    int b[16]={0},c[16]={0};
    for(i=0;i<16;i++)
    {
        b[i]=(a/(int)(pow(2.0,i))%2);//强制转换,类型加括号
    }
    for(j=0;j<16;j++)
    {
        if(b[j]!=0&&b[j]!=1)
        {c[j]=0;}
        c[j]=b[j];
    }
    for(k=1;k<16;k++)
    {
        if(c[k]==0)//是==
          c[k]=1;
        else
          c[k]=0;
    }
    for(i=0;i<16;i++)
    {
        if(c[15-i]==0)//一样是==
        {    c[15-i]=1;
        for(k=0;k<3;k++)
        {c[15-i]=0;}
        break;
        }
    }
    for(i=0;i<16;i++)
    {
        printf("%d",c[i]);
    }
return 0;
}
int main(void)
{   int x;
    scanf("%d",&x);
    printf("%d",er(x));

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-11
在函数int er(int a)的末尾加上返回值。

例如return 0;

int main(void)函数也需要返回值。追问

不是的 我试过了

追答

把编译的错误信息粘贴出来看看