宿題とか手伝えます
■ このスレッドは過去ログ倉庫に格納されています
0463デフォルトの名無しさん
NGNG大体範囲の勉強は終わったんですが、ハッシュってのが良くわかりません。
サンプルプログラムはもらったんですが、ネットで検索して勉強してもよくわかりません。
誰か教えてください。できないと単位落としてしまいます。死んでしまいます。
サンプルを書いておきます。
わからないのは、m[DATA_NUM][JAP_LEN]あたりからです。
これって2次元配列なんでしょうか?
#include <stdio.h>
#include <string.h>
#define DATA_NUM 5
#define ENG_LEN 10
#define JAP_LEN 30
int hash(char *s){
int i=0;
int h=0;
while(s[i] != '\0'){
h=(h*256+s[i])%DATA_NUM;
i++;
}
return h;
}
int main(void){
int i;
char s[ENG_LEN];
char m[DATA_NUM][JAP_LEN];
for(i=0;i<DATA_NUM;i++)
strcpy(m[i],"nodata");
printf("string ->");
scanf("%s",s);
while(strcmp(s,"end") != 0){
printf("Japanese ->");
scanf("%s",m[hash(s)]);
printf("string ->");
scanf("%s",s);
}
printf("string ->");
scanf("%s",s);
while(strcmp(s,"end") != 0){
printf("%s\n",m[hash(s)]);
printf("string ->");
scanf("%s",s);
}
return 0;
}
■ このスレッドは過去ログ倉庫に格納されています