#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
最新推荐文章于 2021-06-04 20:30:00 发布