本题要求实现一个函数,可从一个结构体数组data域中查找一个给定的数据元素x,查找成功,返回该元素所在位置的指针;否则,返回NULL。 函数接口定义: INFO *SearchIn ( INFO *p, int n, int x ); 其中 p 、n和 x 都是用户传入的参数。 p 是一个INFO类型的指针;n是数组元素个数, x 是要查找的数据元素。函数返回 x 在 p所指的数组中具体位置。 裁判测试程序样例: #include <stdio.h> typedef struct _INFO { int data; char name[20]; } INFO; INFO *SearchIn ( INFO *p, int n, int x ); int main() { int i, n, x; INFO info[10], *p; scanf("%d", &n); for (i = 0; i < n; i++) scanf("%d %s", &info[i].data, info[i].name); scanf("%d", &x); p = SearchIn ( info, n, x ); if (p != NULL) printf("%s %d\n", p->name, p->data); else printf("Not Found!\n"); return 0;
时间: 2024-03-17 09:46:03 浏览: 72
查询数据函数
好的,以下是一种可能的实现方式:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct _INFO {
int data;
char name[20];
} INFO;
INFO *SearchIn(INFO *p, int n, int x) {
int i;
for (i = 0; i < n; i++) {
if (p[i].data == x) {
return &p[i];
}
}
return NULL;
}
int main() {
int i, n, x;
INFO info[10], *p;
scanf("%d", &n);
for (i = 0; i < n; i++)
scanf("%d %s", &info[i].data, info[i].name);
scanf("%d", &x);
p = SearchIn(info, n, x);
if (p != NULL)
printf("%s %d\n", p->name, p->data);
else
printf("Not Found!\n");
return 0;
}
```
该函数接受一个指向 INFO 结构体数组的指针 p,数组元素个数 n,以及要查找的数据元素 x。函数会遍历整个数组,如果找到了数据元素 x,则返回该元素所在位置的指针;否则返回 NULL。在主函数中,我们可以调用该函数并根据返回值判断是否找到了数据元素 x。
阅读全文