试验五
2019-05-25 15:32 凡不才 阅读(169) 评论(1) 收藏 举报1 #include <stdio.h> 2 const int N=5; 3 int binarySearch(int x[], int n, int item); 4 int main() { 5 int a[N]={1,3,9,16,21}; 6 int i,index, key; 7 printf("数组a中的数据:\n"); 8 for(i=0;i<N;i++) 9 printf("%d ",a[i]); 10 printf("\n"); 11 printf("输入待查找的数据项: "); 12 scanf("%d", &key); 13 index=binarySearch(a,N,key); 14 if(index>=0) 15 printf("%d在数组中,下标为%d\n", key, index); 16 else 17 printf("%d不在数组中\n", key); 18 return 0; 19 } 20 int binarySearch(int x[], int n, int item) { 21 int low, high, mid; 22 low = 0; 23 high = n-1; 24 while(low <= high) { 25 mid = (low+high)/2; 26 if (item == x[mid]) 27 return mid; 28 else if(item<x[mid]) 29 high = mid - 1; 30 else 31 low = mid + 1; 32 } 33 return -1; 34 }


1 #include <stdio.h> 2 const int N=5; 3 int binarySearch(int *x, int n, int item); 4 int main() { 5 int a[N]={1,3,9,16,21}; 6 int i,index, key; 7 printf("数组a中的数据:\n"); 8 for(i=0;i<N;i++) 9 printf("%d ",a[i]); 10 printf("\n"); 11 printf("输入待查找的数据项: "); 12 scanf("%d", &key); 13 index=binarySearch(a,N,key); 14 if(index>=0) 15 printf("%d在数组中,下标为%d\n", key, index); 16 else 17 printf("%d不在数组中\n", key); 18 return 0; 19 } 20 int binarySearch(int *x, int n, int item) { 21 int low, high, mid; 22 low = 0; 23 high = n-1; 24 while(low <= high) { 25 mid = (low+high)/2; 26 if (item == *(x+mid)) 27 return mid; 28 else if(item<*(x+mid)) 29 high = mid - 1; 30 else 31 low = mid + 1; 32 } 33 return -1; 34 }

1 #include <stdio.h> 2 #include <string.h> 3 #define M 20 4 void selectSort(char str[][20], int n ); // 函数声明,形参str是二维数组名 5 int main() { 6 char name[][20] = {"John", "Alex", "Joseph", "Candy", "Geoge"}; 7 int i; 8 printf("输出初始名单:\n"); 9 for(i=0; i<5; i++) 10 printf("%s\n", name[i]); 11 selectSort(name, 5); // 调用选择法对name数组中的字符串排序 12 printf("按字典序输出名单:\n"); 13 for(i=0; i<5; i++) 14 printf("%s\n", name[i]); 15 return 0; 16 } 17 // 函数定义 18 // 函数功能描述:使用选择法对二维数组str中的n个字符串按字典序排序 19 void selectSort(char str[][20], int n) { 20 int i,j; 21 char t[M]; 22 for(i=0;i<n-1;i++) 23 for(j=0;j<n-1-i;j++) 24 if(strcmp(str[j],str[j+1])>0) 25 { 26 strcpy(t,str[j]); 27 strcpy(str[j],str[j+1]); 28 strcpy(str[j+1],t); 29 } 30 }

实验总结:
1.strcmp 用法
比较两个字符串,设2个字符串分别为str1,str2。
若str1=str2 返回值为零
str1<str2 返回值为负数
str1>str2 返回值为政治
浙公网安备 33010602011771号