Ray asked in 電腦與網際網路程式設計 · 2 decades ago

有關C 程式的問題請高手幫忙一下吧

請幫我寫下列2個程式拜託了

1.(迴文)迴文是指某個字串的正向拼法和逆向拼法都是相同的。關於迴文的些 例子,例如"radar"、"able was I ere I saw elba"和"a man a plan a canalpanama"(如果忽略空白)。請撰寫一個遞迴程式testPalindrome,當儲存在串列中的字串是迴文時,就傳回true,否則就傳回false。函式應該忽略字串中間的空白和標點符號。

2.建立一個具有length和width屬性的Rectangle類別,這會將預設值設定為1。請提供成員函式,讓他計算矩形的周長和面積。此外他也提供處理length和width屬性的set和get函式。set函式應該要能夠驗證length和width,這都是介於0.0到20.0之間的浮點數。

順便幫我在程式後面註解程式的意思....拜託嚕

只要其中一個寫的出來就能了

如果2個都寫的出來的話就真的太感謝你嚕~~~~~

4 Answers

Rating
  • 2 decades ago
    Favorite Answer

    1.

    #include <iostream>

    using namespace std;

    bool testPalindrome(const char* st)

    {

    static int head=0, end=strlen(st)-1; // head與end索引的字元拿來比

    if(head==end) // 停止條件

    return true;

    else if(head+1==end)

    {

    if(!isalpha(st[head])||!isalpha(st[end])||st[head]==st[end])

    return true;

    else return false;

    }

    if(!isalpha(st[head])) // 若head索引字元為非字母

    {

    head++;

    return testPalindrome(st); // 判斷子字串

    }

    if(!isalpha(st[end]))

    {

    end--;

    return testPalindrome(st);

    }

    if(st[head]==st[end])

    {

    head++;

    end--;

    return testPalindrome(st);

    }

    return false;

    }

    int main()

    {

    cout<<testPalindrome("able was I ere I saw elba");

    system("PAUSE");

    return 0;

    }

    2.

    #include <iostream>

    using namespace std;

    class Rectangle

    {

    public:

    Rectangle(double len=1, double wid=1):length(len), width(wid){} // constructor

    double perimeter() { return 2*(length+width); } // 周長

    double area(){ return length*width; } // 面積

    double getLen() { return length; } // 傳回length

    double getWid() { return width; } // 傳回width

    bool setLen(double len) // 設定length

    {

    if(len&&(len<20)) // 範圍檢驗

    {

    length=len;

    return true;

    }

    cout<<"The input width is out of expected range!!\n"; // 超過範圍警告傳回false

    return false;

    }

    bool setWid(double wid) // 設定width

    {

    if(wid&&(wid<20))

    {

    width=wid;

    return true;

    }

    cout<<"The input width is out of expected range!!\n";

    return false;

    }

    private:

    double length, width; // private data member

    };

    第一次寫, 好像寫的不太漂亮=.=

  • 2 decades ago

    第一題只要一個code迴圈看他順著跑和倒著跑是不是一樣就好了吧= =

    整個code不到10行

    幹麻寫那麼長

    還有 作業請自己寫

  • 2 decades ago

    小白你程式怪怪喔..

    出現都是..任意鍵結束..= =+

  • Anonymous
    2 decades ago

    tenchang=159 forthan=951

    forsin=1598i over than=9541c

Still have questions? Get your answers by asking now.