Условие внутри цикла 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), посчитать количество таких треугольников и сумму их периметров