c语言 只用数组 不用结构体 函数search( ) ——根据姓名用顺序查找方法找出该学生,查找成功返回学生下标,否则返回-1;
时间: 2024-12-24 13:40:19 浏览: 8
在C语言中,如果你只使用数组而不使用结构体,你可以创建一个包含学生姓名的字符数组,并使用`search()`函数来实现顺序查找。首先,假设学生的姓名是一个字符串,例如我们有一个存放所有学生姓名的动态大小数组`students[]`,每个元素代表一个学生的姓名。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
#define MAX_NAME_LENGTH 50
#define NUM_STUDENTS 10
// 假设students数组存储了所有学生的姓名
char students[NUM_STUDENTS][MAX_NAME_LENGTH];
// 搜索函数
int search(const char* target_name) {
int index = 0;
// 遍历数组,查找目标名称
for (index = 0; index < NUM_STUDENTS; index++) {
if (strcmp(students[index], target_name) == 0) { // 使用strcmp比较两个字符串
return index; // 找到匹配,返回下标
}
}
return -1; // 如果未找到,返回-1表示失败
}
int main() {
// 初始化学生数组...
// ...然后可以调用search()函数,如:
const char* student_to_find = "Alice"; // 要找的学生名字
int result_index = search(student_to_find);
if (result_index != -1) {
printf("找到了学生,下标是 %d\n", result_index);
} else {
printf("未找到学生 '%s'\n", student_to_find);
}
return 0;
}
```
在这个例子中,`search()`函数通过逐个比较学生姓名数组中的元素与目标姓名,如果找到匹配,则返回相应的索引。如果没有找到,函数会返回-1。
阅读全文