请问错误在哪,为何没有办法让能够构成的三角形正确输入

#include
#include
int main()
{
unsigned a,b,c;
double s,P,A;
s=(a+b+c)/2;
a,b,c!=0;
scanf("%d,%d,%d",&a,&b,&c);

if((a+b>c)&&(a+c>b)&&(b+c>a))
{
A=sqrt(s*(s-a)*(s-b)*(s-c)),P=a+b+c;
printf("area = %02f; perimeter = %02f",A,P);
}
else 
{
printf("These sides do not correspond to a valid triangle");
}
return 0;

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

输入为3个正整数,分别代表三角形的3条边a、b、c。
输出格式:

如果输入的边能构成一个三角形,则在一行内,按照

1.你先s=(a+b+c)/2; 运行得 s 然后才输入scanf("%d,%d,%d",&a,&b,&c); 这样得到的s值肯定不对;
2.浮点型跟整型要注意区分转换;

#include <stdio.h>
#include <math.h>

int main()
{
    unsigned a,b,c;//三边均为为正整数
    double s,P,A;

    printf("Please enter 3 positive integers,e.g: 3,4,5\n");
    scanf("%d,%d,%d",&a,&b,&c);
    s = (double)(a+b+c)/2.0;

    if((a+b>c)&&(a+c>b)&&(b+c>a))
    {
        A=sqrt(s*(s-a)*(s-b)*(s-c)),P=a+b+c;
        printf("area = %0.2lf; perimeter = %0.2lf\n",A,P);
    }
    else
    {
        printf("These sides do not correspond to a valid triangle\n");
    }
    return 0;
}

unsigned a,b,c;
s=(a+b+c)/2;
这是整除啊

你应该用浮点数
float a,b,c
scanf里相应%d修改为%f