实验6

发布时间:2022-06-28 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了实验6脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
#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);

    // 调用函数binarySearch()在数组a中查找指定数据项key,并返回查找结果给index
    // 补足代码①
    index=binarySearch(a,N,key);

    if (index >= 0)
        printf("%d在数组中,下标为%dn", key, index);
    else
        printf("%d不在数组中n", key);

    return 0;
}

// 函数功能描述:
// 使用二分查找算法在从地址x开始的连续n个数据项中,查找特定数据项item
// 如果找到,返回其下标;  如果没找到,返回-1
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;
}

实验6

 

 

实验6

 

 

实验6

 

 

#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] = '';
}

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

    return 0;
}

实验6

 

 

#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] = '';
}

int main()
{
    char s[81];

    printf("Entre a string:n");
    gets(s);
    /**ERROR**/
    fun(s);
    printf("The sting after deleted:n");
    puts(s);

    return 0;
}

实验6

 

 

#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("YESn");
    else
        printf("Non");

    return 0;
}

// 函数定义
// 功能:判断指针s指向的字符串是否是回文串,如果是,返回1;否则,返回0。
int isPalindrome(char *s)
{
    int i,j;        
        char a[strlen(s)];
        strcpy(a,s);
        for(i = 0;i <strlen(s);i++){
            a[i]=s[strlen(s)-i-1];
        }
        if(strcmp(s,a)==0)
            j=1;
        else
            j=0;
    return j;
}

实验6

 

实验6

 

 

#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("%dn", n);

    return 0;
}

int count(char *str, char *substr)
{
    int i, j, k;
    int num = 0;

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

实验6

 

脚本宝典总结

以上是脚本宝典为你收集整理的实验6全部内容,希望文章能够帮你解决实验6所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: