c语言问题: main() { int x=3,y=5; float z; z=x/y+y%x; printf("z=%d",z); }

解释上面这个程序的输出结果

 main()  
{  
int x=3,y=5;  
float z;  
z=x/y+y%x;  
printf("z=%f",z);  
}

类型错了。在输出时,因该为%f

如果按照你写的

将会是int型的,会得到0.

追问

为什么int型的是0,而不是2;我是初学者,还望多多指教。

追答

我给你四种图,你仔细比较一下,c的定义类型和输出类型,然后自己摸索一下。

在编程方面要多动手,多问老师。我一两句也说不太清。

1

2

3

4

这四种c的定义类型和输出类型有差别,所以结果不同。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-19
float z; z=x/y+y%x; 这个表达式算出z=2.6 因为输出z为整型,所以z=2
第2个回答  2017-11-25
本来z最后为2.0,但输出却是z=0。因为%d是十进制整型,与z的float型不匹配。
第3个回答  2013-06-20
结果为2,由于x,y为整形,所以x/y==0,y%x的余数为2
最后结果就为2
相似回答