这个循环条件出了什么问题?

Mud*_*Ali 5 c

查看此链接的输出(向下滚动以查看输出)以找出我要完成的任务

问题在于for第9-11行的循环

for(i=0; i<=0.9; i+=0.1){
  printf("%6.1f ",i);
}
Run Code Online (Sandbox Code Playgroud)

我预计这会打印从0.0到0.9的值,但它会在打印0.8后停止,任何想法为什么?

Jus*_*man 7

在这里使用float是问题的根源.相反,用int做:

int i;
for(i = 0; i <= 10; i++)
   printf("%6.1f ", (float)(i / 10.0));
Run Code Online (Sandbox Code Playgroud)

输出:

0.0    0.1    0.2    0.3    0.4    0.5    0.6    0.7    0.8    0.9    1.0 
Run Code Online (Sandbox Code Playgroud)