【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※返信付き投稿の削除は禁止!
 ※マルチポスト(多重投稿)は慎んで!

 詳しくはこちら


本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール掲示板2こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.23551

単語の表示
投稿者---CB(2005/10/07 11:47:08)


ハッシュ法をつかって、ファイルの中の単語とその出現回数を調べるプログラムを作成しています。

struct tango_cnt{
 unsigned char *tango; //単語
 int cnt; //出現回数
 struct tango_cnt *next;
};

struct tango_cnt型のハッシュ表を宣言します。
struct tango_cnt *word[N];

ハッシュ表の登録をして、それが終わったら単語と回数を表示させるようにしたいのです。

for(k = 0; k < N; k++){
 if(word[k] != NULL){
 printf("%d %d %s\n", k, word[k]->cnt, word[k]->tango);
 }
}

上のように表示させようとしても単語が表示されません。
出現回数は表示できます。
どうすれば単語も表示されるのでしょうか。
表示の方法が間違っているのでしょうか?


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:単語の表示 23552 まきじ 2005/10/07 11:51:45


No.23552

Re:単語の表示
投稿者---まきじ(2005/10/07 11:51:45)


>struct tango_cnt{
>  unsigned char *tango; //単語
>  int cnt; //出現回数
>  struct tango_cnt *next;
>};

>printf("%d %d %s\n", k, word[k]->cnt, word[k]->tango);

word[k]->tango の領域を確保してから文字列を格納していますか?


この投稿にコメントする

削除パスワード

No.23553

Re:単語の表示
投稿者---CB(2005/10/07 13:03:49)


領域は確保できていると思います。
word[hnum]=(struct tango_cnt *)malloc(sizeof(struct tango_cnt));
hnumは、ハッシュ番号です。

ハッシュ番号順に表示させると、単語のところにはファイルの中身の最後の部分が表示されてしまうんです。


この投稿にコメントする

削除パスワード

No.23554

Re:単語の表示
投稿者---REE(2005/10/07 13:15:14)


>領域は確保できていると思います。
>word[hnum]=(struct tango_cnt *)malloc(sizeof(struct tango_cnt));
>hnumは、ハッシュ番号です。

これは、word[k]の領域の確保です。

word[k]->tangoの領域の確保も別に必要です。


この投稿にコメントする

削除パスワード

No.23557

Re:単語の表示
投稿者---CB(2005/10/08 15:21:04)


ありがとうございます。
考えてみます。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧