Почему при изменении условия цикла ничего не меняется? - C (СИ)
Формулировка задачи:
Столкнулся с одним непонятным явлением в цикле. Для описания этого явления написал простенькую программку.
В цикле условие i<=3 меняем на i<3. Но результат программы никак не меняется! Программа все так же выводит квадраты чисел от 0 до 2.9. Почему смена нестрогого условия на строгое никак не отражается на результате?
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main(){
double i;
for(i=0; i<=3; i+=0.1)
printf("\nSqr(%lg)=%lg", i, i*i);
getch();
return 0;
}Решение задачи: «Почему при изменении условия цикла ничего не меняется?»
textual
Листинг программы
int main(){
double i,j=3.0;
for(i=0; i<=j; i+=0.1)
printf("\nSqr(%lg)=%lg", i, i*i);
getch();
return 0;
}
Объяснение кода листинга программы
В этом коде выполняется следующее:
- Объявляются две переменные: i и j. Значение переменной j устанавливается равным 3.0.
- Запускается цикл for, который начинается с i=0, продолжается до тех пор, пока i меньше или равно j, и шаг цикла равен 0.1.
- Внутри цикла вычисляется и выводится на экран значение квадрата переменной i (используется функция printf).
- После окончания цикла программа ожидает нажатия клавиши (используется функция getch).
- Программа возвращает 0, что означает успешное завершение работы. Следует отметить, что в данном коде не происходит изменения переменной j в цикле, поэтому значение переменной j остается равным 3.0 на протяжении всего цикла.