 Why does my program hv no output | Sololearn: Learn to code for FREE!

0

# Why does my program hv no output

#include <stdio.h> #include <stdlib.h> int main() { float x = 1.1; while(x == 1.1) { printf("x = %f",x); x = x - 0.1; } return 0; } https://code.sololearn.com/ckongjTmvl2r/?ref=app

+4

Zane Vijay Falcao Yes You can read answer here about why both are not equal https://www.quora.com/What-is-the-difference-between-float-and-double-in-C-language-How-is-it-stored-in-the-memory?top_ans=14244454

+4

Zane Vijay Falcao If you use double instead of float then condition will be true double x = 1.1; if (x == 1.1) //true float y = 1.1; if (y == 1.1) //false

+3

Zane Vijay Falcao Both x = 1.1 and 1.1 seems equal but that's not So do this: while (x > 1.1) Or do this: while(x == (float) 1.1)

+1

It seems you have an infinite loop, then execution gets aborted. Pls link your code from Code Playground into the question (edit the question) for us to see the exact response.

+1

+1

It is really an issue of precision. Pls read here a good reference on comparing float values: https://www.tutorialspoint.com/what-is-the-most-effective-way-for-float-and-double-comparison-in-c-cplusplus

0

The question is to predict the output n explain Y don't get a output

0

The value of test condition is true so it should execute the printf statement

0

(float) means type casting right??

0

try this: printf("%d\n", x==1.1) x==1.1 is 0 while(0) will never get executed.

-1

-1

it may be because you used == symbol inside the while