对于数组的查询,其实就是对数组中数据做一个遍历。
最常用的方法就是通过循环对数组中的元素逐个取值,并与参考值(要查询的值)做比对,并处理结果。
下面是一个简单的对一维数组进行查询的样例。
函数功能:对输入的数组元素进行查询,打印符合查询值的元素位置,并返回查询到的元素总数。
函数名:array_query
函数声明: int array_query(int *a, int n, int v)
参数介绍:
a: 输入的数组,类型为整型指针,表示整型数组。可以根据实际需要进行调整。
n:数组中现有元素的个数。
v:要查询的元素值。
返回值:
整型,返回查询到的元素个数。如果出错返回-1。
实现代码:
int array_query(int *a, int n, int v){
int i,ret
if(a == NULL || n <= 0) return -1 //出错处理
for(ret = i = 0 i < n i ++)
{
if(a[i] == n)
{
printf("%d\n", i)//找到元素,打印下标,并累计统计值
ret ++
}
}
return ret//返回总数。
}
1、首先创建一个c语言项目。然后右键头文件,创建一个Stu的头文件。
2、编写头文件的代码。再将数据结构的增删改查和结构体写入头文件。
3、在源文件中创建main源文件和Stu源文件。再main文件中写入int mian()代码。
4、然后在mian主函数中,写入while语句无限循环。再写入Init函数。
5、在Stu源文件的Init函数用printf语句,将学生管理系统输出。再创建链表的头节点head。
6、然后用switch函数对操作进行判断。再执行数据结构的增删改查功能。这样一个学生管理系统的基本框架就完成了。
C代码和运行结果如下:
输入5,成功输出了其在给定数组中的下标为4,结果正确,望采纳~
附源码:
#include <stdio.h>
int search(int a[], int n, int x) { // 返回数组a[]中x的下标
int i
for (i = 0i <ni++) {
if (a[i] == x)
return i
}
return -1// 数组中没有x则返回-1
}
int main() {
int x, a[10] = {7,9,3,4,5,2,1,6,10,8}
scanf("%d", &x)// 用户输入数x
printf("%d ", search(a, 10, x))// 输出x在数组中的下标
return 0
}