#include <stdio.h>
#include <stdlib.h>
int main()
{
int num1 = 1/2;// 0
float num2 = 1/2.0;//0.5整数与实数的结果是实数
float num3 = 3/2.0;//1.5
float num4 = 3/2;//1 整数与整数的结果是整数
printf("%d, %f\n",num1,num1);
printf("%f, %d\n",num2,num2);
printf("%f, %d\n",num3,num3);
printf("%f, %d\n",num4,num4);
getchar();
getchar();
return 0;
}
输出结果
0, 0.000000
0.500000, 0
1.500000, 0
1.000000, 0
对于num1 ,整数与整数相除,得到整数0,故%d输出为0,%f对整数0解析错误,所以输出为0.000000;对于num1、num2整数与实数结果是实数,所以%f输出正确结果,而%d对实数0.5和1.5解析错误,所以%d输出都为0;对于num4整数与整数结果为整数,num4本身类型为实型,%f输出为1.000000,%d为实型解析错误,所以输出0.
一个比较好玩儿的事儿出现了: