c语言程序设计函数章节课后习题

c语言程序设计课后题目搞不懂
遇到一个错误翻译过来也看不懂
#include 
//穷举法

int gcd(int a,int b)
{    
 if(a==0);
    return b;
    if (b==0)
    return a;
    if (a==b)
    return a;
    int gcd_res = a > b?b : a;
    while(gcd_res > 1)
    {
        if(a%gcd_res==0)&& (b%gcd_res==0)
        return gcd_res;
            gcd_res--;
        }
    return gcd_res;
}
int main()
{
    int a , b;
    printf("请输入a和b");
    scanf("%d %d",&a,&b);
    
    //最大公约数
    int gcd_result = gcd(a,b);
    printf("%d 和 %d的最大公约数为:>%d\n",a,b,gcd_result);
    return 0;
    }

[Error] expected identifier before '(' token
我用#define,再找了一下同学,同学说我这个少个中括号,但是我每次审查都发现不了错在哪
我想要明白这个问题出在哪里

1.多了个分号
2.if没括号

img