实验六

#include<stdio.h>

#define 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>
#include<stdlib.h>
void fun(char *a)
{
    int i=0;
    char *p=a;
    while(*p&&*p=='*')
    {
        a[i]=*p;
        i++;
        p++;
    }
    while(*p)
    {
        if(*p!='*')
        {
            a[i]=*p;
            i++;
        }
        p++;
    }
    a[i]='\0';
} 


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

 

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void fun(char *a)
{
    int i=0;
    char *t=a,*f=a;
    char *q=a;
    while(*t)
        t++;
    t--;
    //指针停在最后一个不为\0的字符处 
    while(*t=='*')
        t--;
    //指针停在最后一个不为*的字符处    
    while(*f=='*')
        f++;
    //    指针停在第一个不为*的字符处    
    while(q<f) 
    {
        a[i]=*q;
        q++;
        i++;
    }  
    //前导* 
    while(q<t)
    {
        if(*q!='*')
        {
            a[i]=*q;
            i++;
        }
        q++;
    } 
    
    while(*q)
    {
        a[i]=*q;
        i++;
        q++;
    }
    //末尾* 
    a[i]='\0';
} 


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

 

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

#define N 80
int isPalindrome(char *s);

int main()
{
    char str[N];
    int flag;
    
    printf("Enter a string:\n");
    gets(str);
    
    flag = isPalindrome(str);
    
    if(flag)
       printf("YES\n");
    else
       printf("NO\n");
    
    return 0;
}

int isPalindrome(char *s)
{
    int n,i;
    char *p=s;
    char *t=s;
    while(*t)
        t++;
    t--;
    
    n=strlen(s);
    
    for(i=0;i<=n/2;i++)
    {
        if(*(p+i)!=*(t-i))
        {
            return 0;break;
        }      
    }
    return 1;
    
}

 

 

#include<stdio.h>
#define N 80

int count(char *str,char *substr);

int main()
{
    char str[N],substr[N];
    int n;
    
    gets(str);
    gets(substr);
    n = count(str,substr);
    printf("%d\n",n);
    
    return 0; 
}


int count(char *str,char *substr)
{
    int i,j,k;
    int num=0;
    
    for(i=0;str[i]!='\0';++i)
        for(j=i,k=0;substr[k]==str[j];k++,j++)
        {
            if(substr[k+1]=='\0')
            {
                num++;
                break;
            }
        }
    return(num);
}

 

 

 

posted @ 2021-12-15 12:23  王金梦  阅读(18)  评论(2编辑  收藏  举报