| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
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。你的问题出错的原因是你得循环条件有问题。 
 
 
 |   
- 
 
 
 
- 
运行结果 
 
 
 
 
 
 
 
 |