gpt4 book ai didi

c - C程序中的浮点异常

转载 作者:行者123 更新时间:2023-11-30 20:45:34 25 4
gpt4 key购买 nike

我在以下代码中遇到浮点异常。

int heavy_decimal_count ( int A, int B )        
{
char * markup = "Heavy";
int i , value;
int tempA = A;
int tempB = B;
int reminder = 0;
int sum = 0;
float average = 0.00;
int counter = 0;
if( (tempA < 0) || ( tempB <0 )||( B < A ) )
{
printf(" Error -> Numbers are negative or B is less than A");
return 0;
}
for ( i = A ; i <= B ; i++)
{
value = i;
while( value > 0 )
{
printf(" the value is %d ", value );
counter += counter;
reminder = value % 10;
value /= 10;
sum += reminder;
average = sum/counter ;

}
if( average > 7.0 )
printf(" %d \t avg= %f\t %s\t" ,i , average , markup);
else
printf(" %d \t avg=%f\t " ,i , average );
}
return 0;
}

最佳答案

尽管有这个名字,当您 /% 一个整数乘以 0 时,实际上会发生“浮点异常”。我的猜测是它发生在这里:

average =  sum/counter ;

因为计数器仍然是0。我想你的意思是

counter += counter;

成为

counter += 1;

此外,您可能希望将部门更改为

average =  (float)sum/counter ;

因此它可以作为小数值而不是整数出现。

关于c - C程序中的浮点异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7781487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com