0

这不是我的所有代码,但这是我的设置。当我尝试计算平均值时,我得到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));
4

1 回答 1

1

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

由于您正在打印Inf,因此您似乎被系统宠坏了;在 y 黄疸和过时的意见中,核心转储更好。

于 2012-05-07T00:01:35.800 回答