怎么改错,有人能讲解下吗

#include<stdio.h>
int main()
{
int a, b;
scanf("%d%d",&a,&b);
printf("%d\n",sum(a+b));
int sum(int a,b)
{
sum=a+b;
return sum;
}
return 0;
}


#include<stdio.h>
int sum(int a,int b);
int main()
{
    int a, b;
    scanf("%d%d",&a,&b);
    printf("%d\n",sum(a,b));
    return 0;
}
int sum(int a,int b)
{
    int sum;
    sum=a+b;
    return sum;
}

//你问题是子函数和主函数没有分开,调用子函数参数错误,不声明子函数,子函数中变量名sum和函数名sum不同

#include<stdio.h>
int sum(int a,int b);
int main()
{
int a, b;
scanf("%d%d",&a,&b);
printf("%d\n",sum(a,b));
return 0;
}
int sum(int a,int b)
{
return a+b;
}


#include<stdio.h>
int main()
{
int a, b;
scanf("%d%d",&a,&b);
printf("%d\n",a+b);
return 0;
}

这样也可以


#include<stdio.h>
#define    sum(a, b) ((a) + (b)) 

int main(int argc, char** argv) {
    int a, b;
    return scanf("%d %d", &a, &b) &
        printf("%d\n", sum(a, b)) & 0;
}

img


请注意细节, sum 定义的位置不对, 而且参数应该是 2 个, sum(a, b);