Experiment 5 arrays and pointers

Part1 ABCDEFG may represent 
Part2 (. 1)
#include <stdio.h> #include <stdlib.h> const int N =. 5; int binarySearch (int X [], n-int, int Item); int main () { int a [N] = {2,7,19,45,66}; int I, index, Key; the printf ( "data array a: \ n-"); for (I = 0; I <N; I ++) the printf ( "% D", a [I]); the printf ( "\ n-"); the printf ( "enter be searched data items:"); Scanf ( "% D", & Key); index = binarySearch (a, N, Key); IF (index> = 0) the printf ( "% D in an array, the subscript of% D \ n-", Key, index); the else the printf ( "% D from the array \ n", key) ; System ( "PAUSE"); 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; }

  

(2)

#include  <stdio.h>
#include <stdlib.h> 
#define  N  10
int fun(int *a,int m)
{ 
	int low = 0, high = N-1, mid;
	/*************ERROR**************/
  	while(low <= high)
  	{  
        mid = (low+high)/2;
		/*************ERROR**************/
        if(m < *(a+mid))
             high = mid-1;
		/*************ERROR**************/
        else if(m > *(a+mid))
            low = mid+1;
        else  
			return(mid);
  	}
  	return(-1);
}

int main()
{  
	int i,a[N]={-3,4,7,9,13,24,67,89,100,180},k,m;
   	printf("a数组中的数据如下:\n");
   	for(i=0;i<N;i++)
	   printf("%d ",a[i]);
   	printf("\nEnter m: \n"); 
   	scanf("%d",&m);
	/*************ERROR**************/
   	k = fun(a,m);
   	if (k>=0) 
	   printf("m=%d,index=%d\n",m,k);
   	else 
	   printf("Not be found!\n");
	
	system("pause");
   	return 0;
}

  

(3)

#include <stdio.h>
#include <string.h>
#include <stdlib.h> 
void selectSort(char str[][20], int n ); 
int main() {
    char name[][20] = {"John", "Alex", "Joseph", "Taylor", "George"};
    int i;
    
    printf("输出初始名单:\n");
    for(i=0; i<5; i++)
        printf("%s\n", name[i]);
        
    selectSort(name, 5);  
    
    printf("按字典序输出名单:\n");
    for(i=0; i<5; i++)
        printf("%s\n", name[i]);
    
    system("pause");
    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[j],str[k])<0)
        k=j;
        if(k!=i)
        {
            strcpy(temp,str[i]);
            strcpy(str[i],str[k]);
            strcpy(str[k],temp);
            
        }
        
    }

}

(4)

#include <string.h>
#include <stdio.h>
#include <stdlib.h>
void  fun(char *a) {
    /*****ERROR********/
    int i=0; 
     char *p = a;
    /****ERROR***/
    while(*p && *p == '*') { 
        a[i] = *p;
        i++;
        p++; 
    } 
	while(*p) { 
    /******ERROR*******/
        if(*p != '*')  { 
            a[i] = *p;
            i++; 
        } 
        p++; 
    }
    /******ERROR*******/
    a[i] = 0; 
  
}

int main() {
  	char s[81];
  	printf("Enter a string :\n");
  	gets(s);
  	/***ERROR******/
  	fun(s);
  	printf("The string after deleted:\n");
  	puts(s);
  	
  	system("pause");
	return 0; 
}
 

 (5)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void fun(char *a) {
	/**ERROR******/
	int i=0;
	char *t = a, *f = a;
    char *q = a;
	 
    while(*t)
	    t++;
	t--;
	
	while(*t == '*')
		t--;
		
	while(*f == '*')
		f++;
	/***ERROR***/
    while (q<f) { 
        a[i] = *q;
        q++;
        i++; 
    } 
    while (q<t) {
    	/***ERROR**/
		if(*q != '*') { 
    	    a[i] = *q;
	    	i++; 
    	} 
        q++; 
    } 
    
	while (*q) { 
        a[i] = *q;
        i++;
        q++; 
    } 
    /**ERROR**/
    a[i]=0;
}
int main () {
	char s[81];
	printf("Entre a string:\n");
	gets(s);
	/**ERROR**/
	fun(s);
	printf("The sting after deleted:\n");
	puts(s);
	
	system("pause");
	return 0;
}

  

 

实验结论:还需要多练习,锻练自己的逻辑思维,对一些函数引用的格式还要记忆,指针与数组之间的关系还要多看,否则头昏。

Guess you like

Origin www.cnblogs.com/saberzyk/p/12043864.html