为什么以下代码在符合三角形条件时输出结果为0?(关键词-#include)

问题遇到的现象和发生背景

本题要求编写程序,根据输入的三角形的三条边a、b、c,计算并输出面积和周长。注意:在一个三角形中, 任意两边之和大于第三边。三角形面积计算公式:area=
s(s−a)(s−b)(s−c)

,其中s=(a+b+c)/2。

问题相关代码,请勿粘贴截图
#include <stdio.h>
#include <math.h>
int fun(int a,int b,int c);
int main ()
{
    double square=0,circle=0,p=0,j=0;
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    if(fun(a,b,c))
    {
    circle=(a+b+c)*1.0;
        p=circle/2.0;
        j=p*(p-a)*(p-b)*(p-c)*1.0;
        square=sqrt(j);
        printf("area = %.2f; perimeter = %.2f",&square,&circle);
    }else printf("These sides do not correspond to a valid triangle");
    return 0;
}
int fun(int a,int b,int c)
{
    int i=0;
    if(a<=b)
    {
        i=a;
        a=b;
        b=i;
    }
    if(a<=c)
    {
        i=a;
        a=c;
        c=i;
    }
    if(b<=c)
    {
        i=b;
        b=c;
        c=i;
    }
    if(b+c>a)return 1;
    else return 0;
}

运行结果及报错内容

area = 0.00; perimeter = 0.00

我的解答思路和尝试过的方法
我想要达到的结果

15行改为下面这样,&号去掉

printf("area = %.2f; perimeter = %.2f",square,circle);