实验五

#include<stdio.h>

const int N=3;
int main(){
    int a[N]={1,2,3};
    int i;
    
    printf("通过数组名及下标直接访问数组元素:\n");
    for(i=0;i<N;i++)
        printf("%d: %d\n",&a[i],a[i]);
        
    printf("通过地址间接访问数组元素:\n");
    for(i=0;i<N;i++)
        printf("%d: %d\n",a+i,*(a+i));
    
    return 0;
} 

#include<stdio.h>
const int LINE=2;
const int COL=3;

int main(){
    int a[LINE] [COL]={1,2,3,4,5,6};
    int i,j;
    
    printf("通过数组名及下标直接访问数组元素:\n");
    for(i=0;i<LINE;i++)
        for(j=0;j<COL;j++)
            printf("%d: %d\n",&a[i][j],a[i][j]);
    printf("通过地址间接访问数组元素:\n");
    
    for(i=0;i<LINE;i++)
       for(j=0;j<COL;j++)
          printf("%d: %d\n",a[i]+j,*(a[i]+j));
          
    printf("二位地址中a+i表示的地址:\n");
    for(i=0;i<LINE;i++)
        printf("a+%d: %d\n",i,a+i);
        
    return 0;
}

# include<stdio.h>
#include<stdlib.h>

const int N=3;

int main(){
    int a[N];
    int *p,i;
    
    for(p=a;p<a+N;p++)
    scanf("%d",p);
    for(p=a;p<a+N;p++)
        printf("%d",*p);
    printf("\n");
    
    p=a;
    
    for(i=0;i<N;i++)
        scanf("%d",p+i);
        
    for(i=0;i<N;i++)
        printf("%d",*(p+i));
    printf("\n");
    
    return 0;
}

#include<stdio.h>

int main(){
    int a[2][3]={1,2,3,4,5,6};
    int i,j;
    int *p;
    int(*q)[3];
    
    for(p=a[0];p,a[0]+6;p++)
        printf("%d",*p);
    printf("\n");
    
    for(q=a;q<a+2;q++)
        for(j=0;j<3;j++)
            printf("%d",*(*q+j));
    printf("\n");
    
    return 0;
}

#include<stdio.h>
 
 const int N=5; 
 
 int binarySearch(int x[],int n,int item);
 
 int main(){
     int a[N]={2,7,19,45,66};
     int i,index,key;
     
     printf("数组a中的数据:\n");
     for(i=0;i<N;i++)
         printf("%d",a[i]);
     printf("\n");
     
     printf("输入待查找的数据项:");
    scanf("%d",&key);
    
    index=binarySearch(a,N,key);
    
    if(index>=0)
        printf("%d在数组中,下标为%d\n",key,index);
    else
        printf("%d不在数组中\n",key);
        
    return 0;}
    
    int binarySearch(int x[],int n,int item){
        int low,high,mid;
        
        low=0;
        high=n-1;
        
        while(low<=high){
            mid=(low+high)/2;
            
            if(item==x[mid])
               return mid;
            else if(item<x[mid])
               high=mid-1;
            else 
               low+mid+1;
        }
        
        return -1;
    } 
 

#include<stdio.h>
 
 const int N=5; 
 
 int binarySearch(int *x,int n,int item);
 
 int main(){
     int a[N]={2,7,19,45,66};
     int i,index,key;
     
     printf("数组a中的数据:\n");
     for(i=0;i<N;i++)
         printf("%d",a[i]);
     printf("\n");
     
     printf("输入待查找的数据项:");
    scanf("%d",&key);
    
    index=binarySearch(a,N,key); 
    
    if(index>=0)
        printf("%d在数组中,下标为%d\n",key,index);
    else
        printf("%d不在数组中\n",key);
        
    return 0;}
    
    int binarySearch(int *x,int n,int item){
        int low,high,mid;
        
        low=0;
        high=n-1;
        
        while(low<=high){
            mid=(low+high)/2;
            
            if(item==*(x+mid))
              return mid;
            else if(item<*(x+mid))
               high=mid-1;
            else
               low=mid+1;
    }
    
    return -1;
}

#include<stdio.h>
#include<string.h>

const int N=5;

void selectSort(char str[][20],int n);
int main(){
    char name[][20]={"Bob","Bill","Joseph","Taylor","George"};
    int i;
    printf("输出初始名单:\n");
    for(i=0;i<N;i++)
        printf("%s\n",name[i]);
        
    selectSort(name,N);
    
    printf("按字典序输出名单:\n");
    for(i=0;i<N;i++)
        printf("%s\n",name[i]);
        
    return 0;
    
}

void selectSort(char str[][20],int n){
    int i,j,k;
    char temp[20];
    for(i=0;i<n-1;i++){
      k=i;
      for(j=i+1;j<n;j++)
      if(strcmp(str[k],str[j])>0)
      k=j;
      if(k!=i)
      {
          strcpy(temp,str[1]);
          strcpy(str[i],str[k]);
          strcpy(str[k],temp); 
      }
      
}
      
}

posted @ 2020-12-18 11:59  sherllis  阅读(47)  评论(0)    收藏  举报