1

 1 #include<stdio.h>
 2 
 3 const int N=3;
 4 int main(){
 5     int a[N] = {1, 2, 3};
 6     int i;
 7     
 8     printf("通过数组名和下标直接访问数组元素:\n");
 9     for(i=0; i<N; i++)
10         printf("%d: %d\n", &a[i], a[i]);
11         
12     printf("通过地址间接访问数组元素:\n");
13     for(i=0; i<N; i++)
14         printf("%d: %d\n", a+i, *(a+i));
15         
16     return 0; 
17 } 

2

 1 #include<stdio.h>
 2 const int LINE = 2;
 3 const int COL = 3;
 4 
 5 int main(){
 6     int a[LINE][COL] = {1, 2, 3, 4, 5, 6};
 7     int i, j;
 8     
 9     printf("通过数组名和下标直接访问数组元素:\n");
10     for(i=0; i<LINE; i++)
11         for(j=0; j<COL; j++)
12             printf("%d: %d\n", &a[i][j], a[i][j]);
13             
14     printf("通过地址间接访问数组元素:\n");
15     for(i=0; i<LINE; i++)
16         for(j=0; j<COL; j++)
17             printf("%d: %d\n", a[i]+j, *(a[i]+j));
18     
19     printf("二维地址中a+i表示的地址:\n");
20     for(i=0; i<LINE; i++)
21         printf("a + %d: %d\n", i, a+i);
22         
23     return 0; 
24 }

3

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 const int N=3;
 4 
 5 int main(){
 6     int a[N];
 7     int *p, i;
 8     
 9     for(p=a; p<a+N; p++)
10         scanf("%d", p);
11         
12     for(p=a; p<a+N; p++)
13         printf("%d ", *p);
14     printf("\n");
15     
16     p = a;
17     for(i=0; i<N; i++)
18         scanf("%d", p+i);
19     
20     for(i=0; i<N; i++)
21         printf("%d ", *(p+i));
22     printf("\n");
23     
24     return 0;
25 }

4

 1 #include<stdio.h>
 2 
 3 int main(){
 4     int a[2][3] = {1,2,3,4,5,6};
 5     int i,j;
 6     int *p;
 7     int (*q)[3];
 8     
 9     for(p=a[0]; p<a[0]+6; p++)
10         printf("%d", *p);
11     printf("\n");
12     
13     for(q=a; q<a+2; q++)
14         for(j=0; j<3; j++)
15             printf("%d", *(*q+j));
16     printf("\n");
17     
18     return 0;
19 }

 

5

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

6

 1 #include<stdio.h>
 2 const int N = 5;
 3 void selectSort(int [], int);
 4 void input(int [], int);
 5 void output(int [], int);
 6 int main(){
 7     int a[N];
 8     
 9     printf("输入%d个整数\n", N);
10     input(a, N);
11     
12     printf("排序前的数据\n", N);
13     output(a, N);
14     
15     selectSort(a, N);
16     
17     printf("排序后的数据\n", N);
18     output(a, N);
19     
20     return 0; 
21 }
22 
23 void input(int a[], int n) {
24     int i;
25     for(i=0; i<n; i++)
26         scanf("%d", &a[i]);
27 }
28 
29 void output(int a[], int n) {
30     int i;
31     for(i=0; i<n; i++)
32         printf("%d ", a[i]);
33     printf("\n");
34 }
35 
36 void selectSort(int a[], int n) {
37     int i, j, k, temp;
38     
39     for(i=0; i<n-1; i++){
40         k = i;
41         
42             for(j=i+1; j<n; j++)
43                 if(a[j] < a[k])
44                     k = j;
45         
46             if(k != i){
47                 temp=a[i];
48                 a[i]=a[k];
49                 a[k]=temp;
50             }
51         }
52             
53     }
54     
55    

 

 1 #include<stdio.h>    
 2 #include<string.h>
 3 const int N = 5;
 4 
 5 void selectSort(char str[][20], int n ); 
 6 int main() {
 7     char name[][20] = {"Bob", "Bill", "Joseph", "Taylor", "George"};
 8     int i;
 9     
10     printf("输出初始名单:\n");
11     for(i=0; i<N; i++)
12         printf("%s\n", name[i]);
13     
14     selectSort(name, N); 
15 
16     printf("按字典序输出名单:\n");
17     for(i=0; i<N; i++)
18         printf("%s\n", name[i]);
19     
20     return 0;
21 }
22 
23 // 函数功能描述:使用选择法对二维数组str中的n个字符串按字典序排序
24 void selectSort(char str[][20], int n) {
25     char temp[20];
26     int i, j, k;
27 
28     for(i=0;i<n-1;i++)
29     {
30         k=i;
31         for(j=i+1;j<n;j++)
32             if(strcmp(str[j],str[k])<0)k=j;
33         if(k!=i){
34             strcpy(temp,str[i]); 
35             strcpy(str[i],str[k]);
36             strcpy(str[k],temp);
37         }
38     }
39 }    
posted on 2021-05-22 16:32  wyfaa  阅读(89)  评论(2)    收藏  举报