作者在 2012-10-28 19:16:58 发布以下内容
//:二分查找
#include <stdio.h>
int main(){
typedef struct{
char name[20];
int no;
}employee;
employee array[10];
int i, j, temp, findNo, min, max, middle;
for(i=0; i<10; i++){
printf("输入工号:");
scanf("%d", &array[i].no);
printf("输入姓名:");
scanf("%s", array[i].name);
}
/*选择排序*/
for(i=0; i<9; i++){
for(j=i+1; j<10; j++){
if(array[i].no>array[j].no){
temp = array[i].no;
array[i].no = array[j].no;
array[j].no = temp;
}
}
}//for
for(i=0; i<10; i++){
printf("no = %d, name = %sn", array[i].no, array[i].name);
}
min = 0;
max = 9;
printf("输入要查找工人的工号:");
scanf("%d", &findNo);
while(array[min].no < array[max].no){
middle = (min+max)/2;
if(findNo > array[middle].no){
min = middle;
}else if(findNo < array[middle].no){
max = middle;
}else{
break;
}
}
if(max>min){
printf("%sn", array[middle].name);
}else{
printf("没有找到n");
}
return 0;
}
#include <stdio.h>
int main(){
typedef struct{
char name[20];
int no;
}employee;
employee array[10];
int i, j, temp, findNo, min, max, middle;
for(i=0; i<10; i++){
printf("输入工号:");
scanf("%d", &array[i].no);
printf("输入姓名:");
scanf("%s", array[i].name);
}
/*选择排序*/
for(i=0; i<9; i++){
for(j=i+1; j<10; j++){
if(array[i].no>array[j].no){
temp = array[i].no;
array[i].no = array[j].no;
array[j].no = temp;
}
}
}//for
for(i=0; i<10; i++){
printf("no = %d, name = %sn", array[i].no, array[i].name);
}
min = 0;
max = 9;
printf("输入要查找工人的工号:");
scanf("%d", &findNo);
while(array[min].no < array[max].no){
middle = (min+max)/2;
if(findNo > array[middle].no){
min = middle;
}else if(findNo < array[middle].no){
max = middle;
}else{
break;
}
}
if(max>min){
printf("%sn", array[middle].name);
}else{
printf("没有找到n");
}
return 0;
}