? 發問時間: 電腦與網際網路程式設計 · 1 0 年前

C++程式撰寫問題,幫幫我,該如何下手?

題目:要設計一個可以進行加入,刪除,聯集,交集等運算的程式

相關說明:

1.集合元素為char型態,元素可為a~z任一小寫字元,其他字元不接受

2.有兩個集合SET1和SET2,允許使用者選擇要運作的集合,再加入或刪除其中的元素

3.然後輸出要能顯示出SET1和SET2各自的元素內容,與彼此的交集.聯集

最好可以附加相關說明,越詳細越好~謝謝

已更新項目:

ryan 你的意見內容還不錯,但是我去執行之後有出現BUG跑不過,可以再請你修正一下嗎?

1 個解答

評分
  • 匿名使用者
    1 0 年前
    最佳解答

    I write it in a hurry, please make it as a reference...

    #include<stdio.h>

    #define TRUE 1

    #define FALSE 0

    typedef int BOOL;

    /* set[0]: element 'a'; set[1]: element 'b' etc.

    * the value 'TRUE' mean the character is the member of this set

    */

    BOOL set1[26], set2[26];

    BOOL Add_Element (BOOL *set, int element)

    {

    int index;

    index = element-'a';

    if ( index <0 || index> 26 )

    return FALSE;

    set[index] |= TRUE;

    return TRUE;

    }

    BOOL Del_Element (BOOL *set, int element)

    {

    int index;

    index = element-'a';

    if ( index <0 || index> 26 )

    return FALSE;

    set[index] = FALSE;

    return TRUE;

    }

    void Set_Union (BOOL *result_set, BOOL *set1, BOOL *set2)

    {

    int i;

    for ( i=0; i<26; i++)

    result_set[i] = set1[i] || set2[i];

    }

    void Set_Intersect (BOOL *result_set, BOOL *set1, BOOL *set2)

    {

    int i;

    for ( i=0; i<26; i++)

    result_set[i] = set1[i] && set2[i];

    }

    void Show_Element(BOOL *set)

    {

    int i;

    for ( i=0; i<26; i++)

    {

    if ( set[i] == TRUE )

    printf ( "%c ", i+'a' );

    }

    }

    2007-12-24 14:15:27 補充:

    For your reference!

    Add_Element (set1, i);

    Show_Element(set1);

    Del_Element (set1, 'a');

    Set_Intersect (set3, set1, set2);

    Set_Union (set3, set1, set2);

    2007-12-24 14:18:02 補充:

    I don't what bug you see. I have checked it, it seems no problem.

    參考資料: no
還有問題?馬上發問,尋求解答。