代码改变世界

试验五

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     返回值为政治