您的位置:首页 > 其它

线性搜索linear search

2017-11-14 21:10 239 查看
#include <stdio.h>
#include <string.h>

struct student{
int id;
char name[10];
char addr[20];
double sorce;
};

struct student array[5] = {
{1,"weijun", "pinghu", 98},
{4, "xiaohong", "jiaxing",97},
{5, "huahua", "beijing", 96},
{7, "rensheng", "shandong", 94},
{8, "lingyin", "hujian", 89}
};

int search_int(int id)
{
for (int i=0; i<5; i++)
{
if (id==array[i].id)
{
return i;
}
}

return -1;
}

int search_double(double d)
{
for (int i=0; i<5; i++)
{
if (d==array[i].sorce)
return i;
}

return -1;
}

int search_string(char *p)
{
for (int i=0; i<5; i++)
{
if (strcmp(p, array[i].name)==0)
return i;
}

for (int i=0; i<5; i++)
{
if (strcmp(p,array[i].addr)==0)
return i;
}

return -1;
}

int main()
{
int index;
int index_1;
int index_2;
int idata;
double ddata;
char string[10];

printf("please input some keyword(id) for search:");
scanf("%d",&idata);
index = search_int(idata);
printf("show all thing about the student: %d, %s, %s, %0.1f\n", array[index].id, array[index].name, array[index].addr, array[index].sorce);

printf("please input some keyword(sorce) for search:");
scanf("%lf",&ddata);

index_2 = search_double(ddata);
printf("show all thing about the student: %d, %s, %s, %0.1f\n", array[index_2].id, array[index_2].name, array[index_2].addr, array[index_2].sorce);

printf("please input some keyword(name/addr) for search:\n");
scanf("%s",string);
index_1 = search_string(string);
printf("show all thing about the student: %d, %s, %s, %0.1f\n", array[index_1].id, array[index_1].name, array[index_1].addr, array[index_1].sorce);

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linear search