回复 5楼 lihuahao哈
和那个无关吧……
程序代码:
显式转换
int n1=33,n2=17;
double d1=33.0,d2=17.0;
puts("============两个操作数是整型变量的情况:============");
printf("%d和%d的平均值结果用%%d是:%d\n",n1,n2,(n1+n2)/2);
printf("%d和%d的平均值用%%f得到的结果是:%f\n",n1,n2,(n1+n2)/2); //带个第三方整型常量,为什么是0.000000?
printf("验证上一行:%d除以%d,用%%f结果是:%f\n",n1,n2,n1/n2); //为什么是0.000000?
printf("验证上两行:%d加%d,用%%f结果是:%f\n",n1,n2,n1+n2); //为什么是0.000000?
printf("验证上三行:%d减%d,用%%f结果是:%f\n",n1,n2,n1-n2); //为什么是0.000000?
puts("============一个变量是浮点型,一个变量是整型的情况:============");
printf("%f除以%d,一个变量是浮点数一个变量是整数,结果用%%d是:%d\n",d1,n2,d1/n2); //结果:252645135???
printf("验证上一行,换个位置,结果还用%%d是:%d\n",n1,d2,n1/d2); //结果是33???
printf("带个第三方整型常量:%f和%d平均数是:%d\n",d1,n2,(d1+n2)/2);
printf("验证上一行,换个位置:%d和%f平均数是:%d\n",n1,d2,(n1+d2)/2);
printf("带个第三方浮点型常量:%f和%d平均数是:%d\n",d1,n2,(d1+n2)/2.0);
printf("验证上一行,换个位置:%d和%f平均数是:%d\n",n1,d2,(n1+d2)/2.0);
printf("%f除以%d,结果用%%f是:%f\n",d1,n2,d1/n2);
printf("%d除以%f,两种类型换个位置结果用%%f是:%f\n",n1,d2,n1/d2);
printf("带个整型常量,%f和%d的平均值%%f是:%f\n",d1,n2,(d1+n2)/2);
printf("验证上一行,换下位置,%d和%f平均值%%f是:%f\n",n1,d2,(n1+d2)/2);
printf("浮点常量,%f和%d的平均值%%f是:%f\n",d1,n2,(d1+n2)/2.0);
printf("验证上一行,换下位置,%d和%f平均值%%f是:%f\n",n1,d2,(n1+d2)/2.0);
puts("============两个操作数都是浮点型变量的情况:============");
printf("%f除以%f,正常的用%%f是:%f\n",d1,d2,d1/d2);
printf("%f除以%f,结果却用%%d是:%d\n",d1,d2,d1/d2);
printf("带个浮点常量,%f和%f的平均数%%d是:%d\n",d1,d2,(d1+d2)/2.0);
printf("带个整型常量,%f和%f的平均数%%d是:%d\n",d1,d2,(d1+d2)/2);
printf("带个浮点常量,%f和%f的平均数%%f是:%f\n",d1,d2,(d1+d2)/2.0);
printf("带个整型常量,%f和%f的平均数%%f是:%f\n",d1,d2,(d1+d2)/2);
puts("======好多坑,代入实际问题,看看会不会犯“想当然”的错误:======");
double d_1_1=15.5;int n_1_1=6;printf("现有西瓜%f个,平均分给%d个人,每人可得%f个西瓜。\n",d_1_1,n_1_1,d_1_1/n_1_1);
int n_2_1=35,n_2_2=8;printf("学习互帮,有%d个需补习学生,有%d个较好学生,平均每个较好生要带%f个补习生。\n",n_2_1,n_2_2,n_2_1/n_2_2);
printf("上题填坑:%f\n",(double)n_2_1/(double)n_2_2);
int n_3_1=86,n_3_2=91,n_3_3=95,n_3_4=3;printf("语%d数%d英%d平均分是:%f\n",n_3_1,n_3_2,n_3_3,(n_3_1+n_3_2+n_3_3)/n_3_4);
printf("上题填坑:虽然语数英可能都是整分题,但平均分可能是小数%f\n",(double)(n_3_1+n_3_2+n_3_3)/n_3_4);