为什么平均输出inf?

时间:2012-05-06 23:51:53

标签: c casting

这不是我的所有代码,但这是我的设置。当我试图计算平均值时,我得到inf作为答案。相反,我应该得到一个小数。我错了吗?我做错了什么?

typedef struct hash_table_ {
  data_el **order;
  int *number_next_calls;
  int *number_buckets;
  int *buckets_size;
  int *worst;
  int *total;
  float *average;
  int (*hash_func)(char *);
  int (*comp_func)(void*, void*);
  data_el **buckets_array;
} hash_table, *Phash_table;

...
Phash_table table;
...

int temp_total,temp_buckets_size;
temp_total = *table->total;
temp_buckets_size = *table->buckets_size;
*(table->average) = (float)temp_total/(float)temp_buckets_size;
printf("%f\n",*(table->average));

1 个答案:

答案 0 :(得分:1)

如果除以零,您将获得浮点异常(如果启用了核心转储)或者您将获得无穷大。

由于您正在打印Inf,因此您的系统似乎正在被愚弄;核心转储更好,有点黄疸和古老的意见。