|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
请大家看看我的程序错在哪里!运行出了奇怪的东西。S1E16的动手作业1
#include<stdio.h>
#include<math.h>
int main()
{
float b;
int i;
i=0;
b = 400.00;
while(b>0)
{
b = b*pow(1.08,i) -50;
printf("%.2f\n",b);
i++;
}
printf("%.2f\n",b);
printf("%d\n",i);
return 0;
}
b = b*pow(1.08,i) -50; 这一句在运行中会发生类型自动转换 pow(1.08,i)是double类型,最终在这一句中变量b被 临时 转化为double类型,执行下一语句后,变量b还是刚开始你定义的float类型,所以printf()中用占位符%f是没有问题的,况且无论是double类型还是float类型,都是用%f占位的。如果定义一个double a;用scanf("%lf",&a);其中占位符必须为%lf。你的问题出错的原因是你得循环条件有问题。
|
-
-
运行结果
|