printf输出怎么会这样呢?
/*此处不可理解,x1的格式控制不对,为什么会影响到x2的输出呢?*/
其实,根本不是printf函数中的前面的格式控制不对,影响到后面的输出。而是如果不进行强制类型转换的话,根本不能用%d来输出浮点数。 如果非要输出的话,结果只能是0(在TC环境中)。
事实上,printf("x1=%d, x2=%f \n\n",x1,x2); 这句话,你改为:
printf("x1=%f, x2=%d \n\n",x1,x2); 效果是一样的。 既便是单独用%d来输出一个浮点数据也是如此。 如:printf("x1=%d \n\n",x1);
所以要保证printf函数的正确输出,必须保证格式...全部
/*此处不可理解,x1的格式控制不对,为什么会影响到x2的输出呢?*/
其实,根本不是printf函数中的前面的格式控制不对,影响到后面的输出。而是如果不进行强制类型转换的话,根本不能用%d来输出浮点数。
如果非要输出的话,结果只能是0(在TC环境中)。
事实上,printf("x1=%d, x2=%f \n\n",x1,x2); 这句话,你改为:
printf("x1=%f, x2=%d \n\n",x1,x2); 效果是一样的。
既便是单独用%d来输出一个浮点数据也是如此。 如:printf("x1=%d \n\n",x1);
所以要保证printf函数的正确输出,必须保证格式控制符与输出变量类型一致才可以。
。收起