float类型出错
在C语言中经常会碰到float类型数据出错,换成int型就好了.但很多时候是需要使用float 型数据,用什么办法能改变这个现象,使实型数据正常使用,程序得以正常运行?以下是我做的一道题,我觉得就是这个问题,也许还有别的毛病,请诸位高手指点一二.假设当年产值为100,工业产值的增长率为每年c%,当c分别为6,8,10,12时,试求工业产值分别过多少年可实现翻番(即增长一倍).
此题我是这样做的:
#define N 100.0f
main()
{
int c[]={6,8,10,12};
int y[4];
int i,j;
float s[150];
for(j=0;j<4;j++)
{
y[j]=0; s[1]=N;
for(i=1;s[i]<200;i++)
{
s[i]=s[i]*(1+c[j]/N);
printf("%f\n",s[i]);
y[j]++;
}
printf("%d\t%d\n",c[j],y[j]);
}
}
但是运行提示:flodting point error:domain.,我怎么改也没运行成功.
----------------解决方案--------------------------------------------------------
可以运行啊,你用的什么编译器?
----------------解决方案--------------------------------------------------------
那个提示不是程序的错误...编译器有点问题了
为什么用数组做呢?
程序代码:
#include<stdio.h>
void main()
{
float c=0.06f;
while(c<=0.12)
{
int i=1;
float sum=100.0;
while(sum<=200.0)
{
sum*=1+c;
i++;
}
printf(\"当增长率为%d%%时,需要%d年完成翻倍增值\n\",int(100*c),i);
c+=0.02f;
}
}
----------------解决方案--------------------------------------------------------