Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Jester01

    veterán

    válasz icespeak #494 üzenetére

    1. hiányzik az using namespace std; (fordítófüggő, de ez a helyes)
    2. a Megszamol függvénynek felesleges a c paraméter, a t viszont lehet referencia, ha már úgyis const.
    3. a Megszamol függvény hívásakor a t vektort viszont illene átadni
    4. a Megszamol függvényben a vektor elemeit kellene hasonlítani. Gondolom a hegycsúcs akkor hegycsúcs ha magasabb a tőle jobbra és a tőle balra lévő értéknél is. Tehát feltehetőleg || helyett && feltétel kell, és a szélső elemek nem lehetnek csúcsok.
    5. a ReadFromKeyboard függvényben int változóba olvasol be, azt nem lehet összehasonlítani a "quit" stringgel. Vagy olvass stringbe mint a Read12 függvényben, vagy használj más kilépési feltételt. Az én verziómban negatív szám beírásával lehet kilépni.

    --- t.cpp.orig 2009-03-11 15:04:31.000000000 +0100
    +++ t.cpp 2009-03-11 15:18:08.000000000 +0100
    @@ -3,7 +3,9 @@
    #include <sstream>
    #include <vector>

    -int Megszamol(const vector<int> t, int &c);
    +using namespace std;
    +
    +int Megszamol(const vector<int> &t);
    bool ReadFromFile(const string &fname, vector<int> &t);
    void ReadFromKeyboard(vector<int> &t);
    int Read12(const string &msg, const string &errormsg);
    @@ -52,7 +54,8 @@
    // Kiíratás
    if(file_ok)
    {
    - if(Megszamol(c)) cout << "Hegycsúcsok száma:" << c << endl;
    + int c = Megszamol(t);
    + if(c > 0) cout << "Hegycsúcsok száma:" << c << endl;
    else cout << "Nincs hegycsúcs"<< endl;

    cout << endl << "Futtassam újra? (I/N) "; cin >> ch;
    @@ -92,12 +95,9 @@
    {
    int meres;
    cin >> meres;
    - while(meres!="quit"){
    + while(meres > 0){
    t.push_back(meres);
    cin >> meres;
    - if (meres < 0){
    - meres = 0;
    - }
    }
    }

    @@ -128,10 +128,10 @@
    return true;
    }

    -int Megszamol(const vector<int> t, int &c){
    +int Megszamol(const vector<int> &t){
    int c=0;
    - for(int i=0; i<(int)t.size(); i++){
    - if(i<i+1 || i+1>i+2){
    + for(int i=0; i<(int)t.size()-1; i++){
    + if(t[i]<t[i+1] && t[i+1]>t[i+2]){
    c=c+1;
    }
    }

Új hozzászólás Aktív témák