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しているので、システムに甘やかされているようです。黄疸と古風な意見では、コアダンプの方が優れています。

于 2012-05-07T00:01:35.800 に答える