C语言 输出INF问题
来源:互联网 发布:中国万网域名申请过程 编辑:程序博客网 时间:2024/05/16 07:04
本人在编写以下小程序,当输入数据n、m大于65536时,发现无论如何设置sum的数据类型,输出sum的值都为INF:
double fun(int n,int m){ int i; double sum = 0; for(;n <= m;n++){ sum += 1.0 / (n * n); } return sum;}int main(){ int n,m,i; int num; double f[100]; int flag = 0; num = 1; scanf("%d %d",&n,&m); while(n != 0 || m != 0){ f[flag++] = fun(n,m); scanf("%d %d",&n,&m); } for(i = 0;i < flag;i++){ printf("Case %d: %.5lf\n",num++,f[i]); } return 0;}
经查阅各种资料,发现INF含义如下:
INF表示超出浮点数表示范围(值溢出);
当值很大或很小时会输出INF:1.0/0.0,-1.0/0.0,0.0+inf=inf;log(0);
得到inf时就查看是否有溢出或者除以0;
可用自定义函数 :
int isFiniteNumber(double d) {return (d<=DBL_MAX&&d>=-DBL_MAX);}
来判断d是否为一个finite数;
本题处理方法:
double fun(int n,int m){
int i;
double sum = 0;
for(;n <= m;n++){
sum += 1.0 / n / n;
}
return sum;
}
扩展:
另一个C语言与INF类似的是输出NAN,含义表示对浮点数进行了未定义的操作,例:对负数开方,对负数求对数。可用自定义函数:
int isNumber(double d){return (d==d);}
来判断d是否为nan,若d是nan则返回0,否则返回非零值。
阅读全文
0 0
- C语言 输出INF问题
- C语言输出乱码问题
- c语言输出空格问题。
- C语言 inf和nan
- C语言 inf和nan
- 关于C语言输出问题----fflush (stdin);
- 【C语言最基础的输出问题】
- C语言字符串输出问题&str[i]
- c语言中制表符的输出问题
- c语言输出小数的格式问题
- 问题 G: C语言习题 输出月份
- iOS C语言 inf和nan 打印进度是inf
- c语言---矩阵输出问题(之型矩阵输出)
- C语言控制输出不按数据类型输出的问题
- C语言中的INF和NAN
- C语言 inf和nan
- c语言中的inf和nan
- C语言中的nan和inf使用
- 第四周LeetCode算法题两道
- 程序员的项目周期(表情包版)
- 如果每一种语言都对应一种女生,你会喜欢哪一个?
- 任正非致歉华为前程序员:回来吧,公司错了
- 美国硅谷预测10年后的世界,再不懂你就落伍了
- C语言 输出INF问题
- 明天放假,我放价!一个国庆假期教你学会数学建模
- STM32堆和栈(Heap & Stack)的资料理解
- CSS基础
- 【数学分析+除法分块】Codeforces830C[Bamboo Partition]题解
- Java设计模式_(结构型)_享元模式
- 树的子结构
- CSS基础
- Superset环境配置