程序调试显示run-time check failure #2,stack around the variable 'xxx' was corrupted

看过其他大神的解释,但是还是没懂本代码为何bao'cuo

#include<stdio.h>
#include<math.h>
int main()
{
    double l[3], a, b;
    printf("请输入一个坐标:");
    scanf_s("%lf,%lf",&a,&b);
    printf("\n");
    l[0] = sqrt(pow(a - 2, 2) + pow(b - 2, 2));
    l[1] = sqrt(pow(a - 2, 2) + pow(b + 2, 2));
    l[2] = sqrt(pow(a + 2, 2) + pow(b + 2, 2));
    l[3] = sqrt(pow(a + 2, 2) + pow(b - 2, 2));
    printf("a=%lf,b=%lf\n", a, b);
    printf("L1=%lf\nL2=%lf\nL3=%lf\nL4=%lf\n", l[0], l[1], l[2], l[3]);
    if (l[0] > 1 && l[1] > 1 && l[2] > 1 && l[3] > 1)
        printf("该点的建筑高度为0M");
    else printf("该点的建筑高度为10M");
    return(0);
}

提示如下

图片说明

数组越界,应为** double l[4]**