对应C语言中出现1.#INF00报错的解决方法

本文介绍了在C++编程中遇到的数值溢出问题和除0错误,提供了解决方案。通过调整数的范围并修正除数为0的情况,避免了程序报错。例如,在给定的代码示例中,通过将`sum=sum+1.0/(i*i)`改为`sum=sum+1.0/i/i`解决了浮点数溢出和除0问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.原因:1.#INF00:出现此报错说明是数值溢出,或者说是除数为0

2.解决方法:增大数的范围,对应除数为0的进行修改。

如:刘汝佳的《算法竞赛入门》2-4解答:

#include <stdio.h>
int main() {
	int n,m,k=1;

	while(scanf("%d%d",&n,&m)!=EOF) {
		double sum=0;
		if(n==m&&n==0)
			break;
		for(int i=n; i<=m; i++) {
			sum=sum+1.0/(i*i);//此处会溢出,报错
		}
		printf("Case %d:%.5lf\n",k++,sum);
	}
	return 0;
}

 将注释处sum=sum+1.0/(i*i)改为sum=sum+1.0/i/i即可.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值