//TODO 分别调用哈希函数ScoreH,MarkH,返回key1,key2,把输入的name,address,phone保存到地址,S[key1]和M[key2]中
时间: 2024-03-23 19:40:27 浏览: 18
根据您提供的信息,您需要实现一个函数,该函数分别调用哈希函数 ScoreH 和 MarkH,返回 key1 和 key2,并将输入的 name、address 和 phone 保存到地址、S[key1] 和 M[key2] 中。以下是一个可能的实现:
```
#define maxn 80+10
int ScoreH(char* phone) {
// TODO: 实现电话号码散列函数
}
int MarkH(char* name) {
// TODO: 实现姓名散列函数
}
void SaveContact(char* name, char* address, char* phone, char* addr, char** S, char** M, int* key1, int* key2) {
*key1 = ScoreH(phone);
*key2 = MarkH(name);
strcpy(addr, address);
strcpy(S[*key1], phone);
strcpy(M[*key2], name);
}
```
在上述代码中,我们定义了一个 SaveContact 函数,该函数首先分别调用哈希函数 ScoreH 和 MarkH,将输入的 phone 和 name 进行散列处理,并将哈希值分别保存到 key1 和 key2 中。然后,我们将输入的 address、phone 和 name 分别保存到 addr、S[key1] 和 M[key2] 中,使用 strcpy 函数进行字符串复制。最后,我们返回 key1 和 key2,以便在后续的操作中使用。