printf(" 请输入你要查找的哪一个班费信息:"); printf(" 如:编号 收支 经办人 原因 金额 人数 日期 \n"); char variable[30], temp_find[20]; scanf("%s", variable); if (strcmp(variable, "编号") && strcmp(variable, "经办人") && strcmp(variable, "原因") && strcmp(variable, "部门") && strcmp(variable, "金额") && strcmp(variable, "时间") ) { printf(" 输入 %s 有误\n", variable); break; } printf(" 请输入要查找的元素"); scanf("%s", temp_find); if (SearchList(L, variable, temp_find)) printf(" 查找成功\n"); else printf(" 您所要查找的信息不存在\n"); break;
时间: 2024-04-25 15:27:27 浏览: 63
这段代码是一个查找函数的实现。它首先要求用户输入要查找的班费信息的字段,如:"编号"、"经办人"、"原因"、"部门"、"金额"、"时间"。然后判断用户输入的字段是否正确,如果不正确则输出提示信息并结束函数。如果用户输入的字段正确,就继续要求用户输入要查找的元素。然后调用SearchList函数进行查找,如果查找成功则输出"查找成功",否则输出"您所要查找的信息不存在"。
注意,strcmp函数返回值为0时表示两个字符串相等,所以条件语句中应该使用!来判断是否不相等。
相关问题
int SearchList(struct MyList *L, char variable, char temp_find) { struct MyList *temp = L->next; printf("查找中\n"); while (temp != NULL) { if (!strcmp(variable, "编号")) if (!strcmp(temp->thing.num, temp_find)) { printf(" 班费收支编号为: %s\n", temp->thing.num); printf(" 收入和还是支出: %s\n", temp->thing.into); printf(" 经办人是: %s\n", temp->thing.name); printf(" 收费原因为: %s\n", temp->thing.cause); printf(" 收费金额为: %s\n", temp->thing.money); printf(" 收费的总人数为: %s\n", temp->thing.people); printf(" 收费的日期为: %s\n", temp->thing.time); printf("\n"); }
这段代码定义了一个名为SearchList的函数,其作用是在链表L中查找特定字段为temp_find的节点,并打印该节点的所有数据。具体来说:
- 函数接受三个参数:指向链表头的指针L、要查找的字段名称variable和要查找的字段值temp_find。
- 函数返回值为整型,表示查找到的节点个数。
- 首先定义了一个指针变量temp,指向链表头的下一个节点。
- 执行printf语句,输出"查找中"的提示信息。
- 进入while循环,只要temp不为NULL,就执行循环体中的语句。
- 在循环体中,如果要查找的字段为"编号",且当前节点的编号与要查找的编号相同,则打印该节点的所有数据。
- 最后将temp指向下一个节点,继续遍历,直到temp为NULL,退出循环。
- 返回查找到的节点个数。
oid FinderList(struct MyList *L) { struct MyList *temp = L->next; while (temp != NULL) { printf("\n"); printf("------------------------------------------------------------\n"); printf(" 班费收支编号为: %s\n", temp->thing.num); printf(" 收入和还是支出: %s\n", temp->thing.into); printf(" 经办人是: %s\n", temp->thing.name); printf(" 收费原因为: %s\n", temp->thing.cause); printf(" 收费金额为: %s\n", temp->thing.money); printf(" 收费的总人数为: %s\n", temp->thing.people); printf(" 收费的日期为: %s\n", temp->thing.time); printf("------------------------------------------------------------\n"); printf("\n"); temp = temp->next;
这段代码定义了一个名为FinderList的函数,其作用是遍历链表L并打印链表中的每个节点的数据。具体来说:
- 函数不返回任何值,即返回类型为void。
- 函数接受一个指向链表头的指针L。
- 首先定义了一个指针变量temp,指向链表头的下一个节点。
- 然后进入while循环,只要temp不为NULL,就执行循环体中的语句。
- 在循环体中,先打印一些分割线和节点的各个字段,例如班费收支编号、收入和还是支出、经办人、收费原因、收费金额等等。
- 最后将temp指向下一个节点,继续遍历,直到temp为NULL,退出循环。
阅读全文