找出key在数组a中的位置
param key要寻找的数字
param a要寻找的数组
param length数组a的长度
return如果找到,返回其在a中的位置;如果找不到则返回-1
int search(int key,int a[], int length);
#include<stdio.h>
int search(int key, int a[], int length)
{
int ret = -1;
int i;
for ( i=0; i< length; i++ ) {
if ( a[i] == key ) {
ret = i;
break;
}
}
return ret;
}
int main(void)
{
int a[] = {2,4,6,7,1,3,5,9,11,13,23,14,32};
int x;
int loc;
printf("请输入一个数字:");
scanf("%d",&x);
loc=search(x,a,sizeof(a)/sizeof(a[0]));
if ( loc !=-1 ) {
printf("%d在第%d个位置上\n", x, loc);
}else {
printf("%d不存在\n", x);
}
return 0;
}
数组的大小:sizeof(a)/sizeof(a[0]) 有一个数组a,已知数组中第一个元素a[0],相除得到数组中有多少个元素。
数组的赋值:若把数组的所有元素交给另一个数组,必须采用遍历。有一个数组int a[]={1,2,3,4,5} 若让数组b等于数组a,应写一个循环。
for ( i=0; i<length; i++ ) {
b[i] = a[i];
}
将search函数放主函数之前,不需要对他进行声明。search函数中中做一个循环,对数组a做遍历,遍历的每一次,拿出数组a中的一个单元来判断与key是否相等。相等则跳出search函数,进行下一步if语句。若遍历数组没有找到与key相等的单元,也跳出函数,返回-1