У меня проблема с фрагментом кода, в котором у меня есть оператор if
, который проверяет диагональные элементы сложного массива, и если они (1,0) (что означает, что действительная часть 1, а мнимая часть - 0) или очень близко к ней, то продолжайте; иначе остановитесь. Но по какой-то причине операция всегда возвращает 0, хотя элементы (0,999999, 0,000000), (1,000001, 0,000000) и т.д.Если проблема с условиями (C++)
Вот код, у меня есть:
for (i=1; i<=n; i++){
if ((real(c[i][i][1]) < (1/100000)+1) && (imag(c[i][i][1]) < 1/100000) && (real(c[i][i][1]) > (-1/100000+1) && (imag(c[i][i][1]) > -1/100000)){
cout<<"Operation continues...";
}
else
return 0;
}
Спасибо заранее.
Вы находитесь в над головой. Начните с чего-то простого. Например, сначала выведите значение «1/100000» и посмотрите, насколько оно вам кажется. –
10/100000 Это даст значение 0, поскольку оно является целым делением. Возможно, вам понадобится 10.0/100000 – jcoder
Рефакторинг, прежде чем обращаться за помощью. –