Problema C++

Intrebari despre limbajul C++, standardul C++, STL, OOP in C++ sau alte subiecte nelegate de VisualC++

Problema C++

Mesajde BeatriceB » 04 Aug 2016, 12:06

Deci enuntul suna asa:
Fişierul text "date.in" conţine pe prima linie , separate prin câte un spaţiu, cel mult 1000 de numere naturale, fiecare dintre ele având maximum 9 cifre.
a) Scrieţi un program C/C++ care citeşte numerele din fişierul date.txt şi determină cea mai lungă secvenţă ordonată strict descrescător, formată din valori citite consecutiv din fişier. Numerele din secvenţa găsită vor fi afişate pe ecran, pe o linie, separate prin câte un spaţiu. Dacă sunt mai multe secvenţe care respectă condiţia impusă, se va afişa doar prima dintre acestea. Alegeţi o metodă de rezolvare eficientă din punctul de vedere al timpului de executare.
Exemplu: dacă fişierul date.in conţine 5 2 19 4 3 6 3 2 1 0 8 pe ecran se afişează: 6 3 2 1 0.
Am incercat sa il rezolv:
Cod: Selectaţi tot
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
    int v1[100], v2[100], i=0, j=0, a, b;
    ifstream f("date.in");
    f>>a;
    i++;
    v1[i]=a;
    for(;;)
    {
        f>>b;
        if(!f)break;
        if(a>b)
        {
            i++;
            v1[i]=b;   //in primul vector formam secvente descrescatoare

        }
        else if (i>j)  // in cazul in care secventa formata e mai mare decat prima
                       
        {
            for(int k=1; k<=i; k++)
            {
                v2[k]=v1[k];    //va fi mutata in al doilea vector
                v1[k]=0;        //iar primul initializat cu zero
            }
            j=i;                // se va actualiza si lungimea vectorilor
            i=0;
        }
            a=b;               
    }
    f.close();
    for(int k=1; k<=j; k++)
    {
        cout<<v2[k]<<" " ;
    }
    return 0;
}

Dar se pare ca nu este bine, fiindca pentru exemplul dat se afiseaza 4 3 3 2 1 0 .
Ce este gresit in rezolvare?
BeatriceB
Junior
Junior
 
Mesaje: 4
Membru din: 18 Mar 2016, 16:37
Judet: Iaşi

Înapoi la Limbajul C++

Cine este conectat

Utilizatorii ce navighează pe acest forum: Niciun utilizator înregistrat şi 2 vizitatori

cron