main() { int x=2,y=1;float f=9.8,s=10; f=(int)f+x%3*y/(int)s

问题描述:

main() { int x=2,y=1;float f=9.8,s=10; f=(int)f+x%3*y/(int)s; printf("%d\n",f) ; getch(); }求解
为什么按%d或者其他输出都是0,而按%f的格式输出就是9?
1个回答 分类:综合 2014-12-07

问题解答:

我来补答
#include
void main()
{
int x=2,y=1;
float f=9.8,s=10;
f=(int)f+x%3*y/(int)s; //等号右边=9+2%3*1/10=9,将整数9转换为float型9.0赋给f
printf("%d\n",f) ; //f是float型,按整型输出,结果不对,应该按%f输出.
getch();
}
再问: main() { int k=1,n; float x=1,y; n=++k*++k;y=++x*++x; printf("%d,%f",n,y); getch(); }帮我分析下输出 为什么输出不一样,要是把float改成int是不是就一样了?为什么啊
 
 
展开全文阅读
剩余:2000
下一页:立体几何 24题