Условие внутри цикла do не срабатывает

многоуважаемые, столкнулся с такой проблемой почему-то не срабатывает условие внутри цикла do, следовательно, не считаются p и num и выводится 0, 0. Сначала думал, что неправильно составлено условие, но вроде все верно.

program laba22_16
    integer size
    real(4) A(100), B(100), C(100)
    integer i
    integer:: num = 0
    real:: p = 0
    integer:: fin = 3, fout = 4
    open(fin, file = "in.txt", iostat = ios)
    open(fout, file = "out.txt", iostat = ios)
    read(3, *, iostat = ios) size
    print*, size
    read (fin, *, iostat = ios) (A(i), i = 1, size)
    read (fin, *, iostat = ios) (B(i), i = 1, size)
    read (fin, *, iostat = ios) (C(i), i = 1, size)
    print*, (A(i), i = 1, size)
    print*, (B(i), i = 1, size)
    print*, (C(i), i = 1, size)
    do i = 1, size
        if(A(i) + B(i) > C(i) .AND. A(i) + C(i) > B(i) .AND. B(i) + C(i) > A(i))then
            num = num + 1
            p = p + A(i) + B(i) + C(i)
        end if
    enddo
    print *, num, p
    write(fout, *, iostat = ios) num, p
    close(fin)
    close(fout)
endprogram

P.S. В задаче необходимо узнать существует ли треугольник со сторонами A(i), B(i), C(i), посчитать количество таких треугольников и сумму их периметров


Ответы (0 шт):