c语言:float x,y;y=(x-=x*x,x/=10)。输入x=10,y=0?为什么呢?
简单的解释一下,我大一刚学c语言描述有歧义,补充一下。输入x=10,程序得到结果y=0,为什么y=0?...
简单的解释一下,我大一刚学c语言
描述有歧义,补充一下。输入x=10,程序得到结果y=0,为什么y=0? 展开
描述有歧义,补充一下。输入x=10,程序得到结果y=0,为什么y=0? 展开
3个回答
2016-01-09 · 知道合伙人教育行家
关注
展开全部
#include <stdio.h>
int main()
{
float x,y;
scanf("%f",&x);
y=(x-=x*x,x/=10);
printf("%f\n",y);
}
没问题啊!!!输出-9.000000
int main()
{
float x,y;
scanf("%f",&x);
y=(x-=x*x,x/=10);
printf("%f\n",y);
}
没问题啊!!!输出-9.000000
追答
尽管你把票投给别人,我很失落,但还回答你的问题,看到了没,第三个printf里输出的格式为%d,是整型,而要输出的值的格式却是float型,精度转话,又涉及到负数的转化,最终转化结果就是0,这个实例表明,编程中最好统一数值的格式,尽可能的少隐式或显式转化格式,否则易出现莫名其妙的问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询