/*******************
线性查找法————使用查找键逐个与数组元素进行比较实现查找
查找过程:利用循环顺序扫描整个数组,依次把每个元素与待查找元素比较,若找到,停止循环,输出位置
输入学号和成绩,输入学号,查找成绩
#define N 40
int ReadScore(int score[],long num[]) //录取id和成绩保存到数组score[]和num[]中
{
int i = -1;
do{
i++;
printf("输入学生ID:");
scanf("%ld",&num[i]);
printf("输入%ld的成绩:",num[i]);
scanf("%d",&score[i]);
}while(num[i] > 0 && score[i] >=0 ); //输入负值时结束
return i;
}
int LinSearch(long num[],long x,int n) //查找数值为X的数组元素,找到返回下标位置,否则返回-1
{
int i;
for(i=0;i<n;i++)
{
if(num[i] == x) return(i); //找到返回下标
}
return -1; //未找到,返回-1
}
int main()
{
int score[N],n,pos;
long num[N],x;
n = ReadScore(score,num); //录入id和学号,并返回总人数
printf("总计人数:%d\n",n);
printf("请输入要查找的ID:");
scanf("%ld",&x); //读取要查找的学号
pos = LinSearch(num,x,n); //查找学号的函数
if(pos != -1) //判断返回值下标
{
printf("此人分数:%d\n",score[pos]); //读取下标对应的分数
}else{
printf("没有你要查找的人\n");
}
return 0;
线性查找法————使用查找键逐个与数组元素进行比较实现查找
查找过程:利用循环顺序扫描整个数组,依次把每个元素与待查找元素比较,若找到,停止循环,输出位置
输入学号和成绩,输入学号,查找成绩
**********************/
#include <stdio.h>#define N 40
int ReadScore(int score[],long num[]) //录取id和成绩保存到数组score[]和num[]中
{
int i = -1;
do{
i++;
printf("输入学生ID:");
scanf("%ld",&num[i]);
printf("输入%ld的成绩:",num[i]);
scanf("%d",&score[i]);
}while(num[i] > 0 && score[i] >=0 ); //输入负值时结束
return i;
}
int LinSearch(long num[],long x,int n) //查找数值为X的数组元素,找到返回下标位置,否则返回-1
{
int i;
for(i=0;i<n;i++)
{
if(num[i] == x) return(i); //找到返回下标
}
return -1; //未找到,返回-1
}
int main()
{
int score[N],n,pos;
long num[N],x;
n = ReadScore(score,num); //录入id和学号,并返回总人数
printf("总计人数:%d\n",n);
printf("请输入要查找的ID:");
scanf("%ld",&x); //读取要查找的学号
pos = LinSearch(num,x,n); //查找学号的函数
if(pos != -1) //判断返回值下标
{
printf("此人分数:%d\n",score[pos]); //读取下标对应的分数
}else{
printf("没有你要查找的人\n");
}
return 0;
}