error: syntax error before "int"

#include
main()
{
float x,y,z,m,n;
scanf("%f,%f,%f",&x,&y,&z);
n=(x+z)/9;
if(int(n)==n)
{
m=((x+z)/9+y)/2;
if(int(m)==m)
{
printf("%g,%g\n",m-n,7*n-z);
printf("1\n");

}
else
printf("gg\n");
}
else
printf("gg\n");
}

图片说明

修改为
if((float)(int)n==n)
可以通过编译

但是记住,这种比较不可靠,应该两数相减取绝对值小于某个极小的值来代替相等判断

此段代码,放在 VS2008 中编译是没有错误的。

 int mainTest()         // 不使用 main
{
    float x,y,z,m,n;

    scanf("%f,%f,%f",&x,&y,&z);
    n=(x+z)/9;
    if(int(n)==n)
    {
        m=((x+z)/9+y)/2;
        if(int(m)==m)
        {
            printf("%g,%g\n",m-n,7*n-z);
            printf("1\n");
        }
        else
            printf("gg\n");
    }
    else
        printf("gg\n");

    return 0;
}

尽量不要用这样的形式,毕竟整型使用原码、反码、补码进行编码,
而浮点型使用IEEE754进行编码,所以强制转换基本上是没有任何意思的。建议使用c里面的math库来进行取整操作。
floor(value)向下取整
ceil(value)向上取整

 if(int(n)==n)
    修改为:
    if(fabs(n-floor(n))<0.0001)//需要#include <math.h>