1. 程式人生 > 遊戲 >《艾爾登法環》新視訊欣賞 享受遊戲美景沉醉其中

《艾爾登法環》新視訊欣賞 享受遊戲美景沉醉其中

實驗1

#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在陣列中,下標為%d\n", 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; }

實驗2

#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);

    return 0;
}

實驗3

#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);

    return 0;
}

實驗4

#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;
}

// 函式定義
// 功能:判斷指標s指向的字串是否是迴文串,如果是,返回1;否則,返回0。
int isPalindrome(char *s)
{
    // 補足函式實現
    // ×××
    int lo=0,la=strlen(s)-1,mid;
    mid=(lo+la)/2;
    while(lo<la)
    {
        if(*(s+lo)!=*(s+la))
        return 0;
        else
        lo++;la--;
    }
    return 1;
}

實驗5

#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; /*待補足①*/i<N; ++i)
        for(/*待補足②*/j=i, k=0; substr[k] == str[j]; k++, j++)
            if(substr[/*待補足③*/k+1] == '\0')
            {
                num++;
                break;
            }
    
    return(num);
}