Условие: Даны N треугольников и координаты их точек. Найти, сколько из них имеют большую сторону AB.
#include "stdafx.h"
#include <iostream>
#include <math.h>
int main(int argc, _TCHAR* argv[])
{
double ax, ay, bx, by, cx, cy; //координаты
double ab, ac, bc; //стороны треугольников
long int i, N, k;
printf("Vvedite kolichestvo treugolnikov:");
scanf_s("%ld", &N);
k = 0;
for (i=1; i<=5; i++) {
printf("\n Treugolnik #%ld", i);
printf_s("\n Vvedite koordinaty tochki A");
scanf_s("%lf%lf\n", &ax, &ay);
printf("\n Vvedite koordinaty tochki B");
scanf_s("%lf%lf\n", &bx, &by);
printf("\n Vvedite koordinaty tochki C");
scanf_s("%lf%lf\n", &cx, &cy);
ab = sqrt((ax-bx)*(ax-bx)+(ay-by)*(ay-by));
ac = sqrt((ax-cx)*(ax-cx)+(ay-cy)*(ay-cy));
bc = sqrt((bx-cx)*(bx-cx)+(by-cy)*(by-cy));
if (ab>bc && ab>ac) {
k++;
}
}
printf("%l\n", k);
}
И тут возникает баг. При вводе первой строки для первого треугольника (координаты точки A), когда я нажимаю Enter, программа запрашивает ещё одну переменную (то есть, вводить нужно три вместо двух). После их ввода компилятор переходит к следующей точке, начиная с которой всё идет правильно. В окончательном результате, насколько я помню (в дебаге) введённые переменные точек последнего треугольника и вовсе на одну вперёд/назад были относительно моего ввода.
Не знаете, почему такое возникает, и связано ли это с функциями printf в начале?