Code: float x,y,rezult; for(int j=1; j<500000; j++){ y =(float)j; for(int i=1; i<500000; i++){ x=(float)i; rezult = x - (x/y)*y; if (rezult != 0){cout<<rezult;}; }; }; Что должен этот код выводить?=\ и что выводить должен этот : Code: float x,y,rezult; for(int j=1; j<500000; j++){ y =(float)j; for(int i=1; i<500000; i++){ x=(float)i; rezult = x - (x/y)*y; cout<<rezult; }; }; И правильноли там преобразование сдделал ато все забыл за лето уже : y =(float)j? В обшем должно же ноль всегда ввыводить только?)
>>>В обшем должно же ноль всегда ввыводить только?) нет. ты соскобками разберись так наглядней Code: float x,y,rezult; for(int j=1; j<500000; j++) { y =j; for(int i=1; i<500000; i++) { x=i; rezult = x - (x/y)*y; if (rezult != 0) cout<<rezult; } } а выводит он много цифр. p/s/ преобразование типов в данном случае не надо т.к. переменные и так флоат. Точказапятая после фигурных скобок не обязательна, и есле один оператор то фигурные скобки тож не обязательны
ога, много много "типо" нулей, код то правильный (за исключением точек с запятой невпопад) ... размерность float имеет свою конечную размерность и при делении непопавшии в неё разряды после запятой обрезаются, что даёт некоторую флуктуацию так что несовсем (x/y)*y = x както так
выводиться как раз будут НЕ нули. и выводиться все эти цифры будут "сплошняком". добавь что-ли разделитель какой-нибудь для наглядности.
2VAran "ТИПО" нули код скомпилируй сначала и вывод сделай такой чтобы поле дробной части было символов в 20 printf("%.20f", rezult); и сразу видно будет, что это числа порядка 1 * 10^(-15) ... а всё изза конечной размерности типа float поэтому x - (x/y)*y иногда и != 0
Code: rezult = x - (x/y)*y; Математически в этом выражении будет присваиваться нуль, но из-за особенностей реализации чисел с плавающей точкой в компьютерах нуль там никогда не будет. Число 26.57, к примеру, будет представлено чем-то наподобие 26.5699999999999
че за бред ты отписал? Тут ноль не будет присваиваться! посмотри код и поймеш что x != y поэтому нуля та мне будет
nc.STRIEM, ты посты внимательно читаешь или как? Я сказал - МАТЕМАТИЧЕСКИ. Возьми бумажку и ручку, напиши эту формулу, подставь вместо x и y любые числа. Если у тебя остались хоть элементарные познания арифметики, на бумаге у тебя будет нуль. Сам бред несешь. Учи математику.
2Exile1985 ненадо ТС путать если не знаешь, так хотя бы скомпиль код и посмотри, что получится а чтобы осмыслить то, что получилось прочти то что здесь постили я и krypt3r ЗЫ читайте, прежде чем ответить, всю тему! и подумайте прежде чем отвечать, а то человека же путаете млин