Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Problema la informatica  (Citit de 2605 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
alexa96
Strain


Karma: -3
Deconectat Deconectat

Mesaje: 4



Vezi Profilul
« : Martie 08, 2014, 10:48:55 »

Ma puteti ajuta sa rezolv urmatoarea problema:
Fişierul text NR.TXT conţine pe o singură linie, separate prin câte un spaţiu, cel mult 100 de
numere întregi, fiecare număr având cel mult 4 cifre. Scrieţi un program C/C++ care citeşte
numerele din fişierul NR.TXT şi afişează pe ecran, separate prin câte un spaţiu, în ordine
crescătoare, toate numerele naturale nenule din fişier. Dacă nu există astfel de numere se
va afişa pe ecran mesajul NU EXISTA.
Exemplu: dacă fişierul NR.TXT conţine numerele: -3 -10 0 7 -5 7 51 -800 6 3798,
atunci pe ecran se va afişa: 6 7 7 51 3798
Memorat
SRadu
Client obisnuit
**

Karma: 31
Deconectat Deconectat

Mesaje: 74



Vezi Profilul
« Răspunde #1 : Martie 08, 2014, 13:25:33 »

Le sortezi cu absolut ce algoritm vrei tu. Bubble sort l-ai facut sigur la scoala.

Dupa ce le-ai sortat, parcurgi vectorul si le afisezi pe cele pozitive.
Memorat
tys-fan-1
Strain


Karma: -2
Deconectat Deconectat

Mesaje: 3



Vezi Profilul
« Răspunde #2 : Martie 12, 2014, 23:44:43 »

Cod:
#include <iostream>
#include <fstream>
using namespace std;
int main()
   {
      int a[100],s=0,i=0,j,k, temp;
      ifstream f("test.txt");

      while (!f.eof())
         {
            f>>a[i];
            cout<<"a["<<i<<"]="<<a[i]<<endl;
            i++;
         }
      for (j=0;j<i;j++)
        cout<<a[j]<<" ";
      cout<<endl;

      f.close();

        for (j=0;j<i-1;j++)
         {
          for (k=j+1;k<i;k++)
            {
                cout<<"inainte:"<<a[j]<<" "<<a[k]<<endl;
                if (a[k]<a[j])
                    {

                        temp=a[j];
                        a[j]=a[k];
                        a[k]=temp;
                    }
                cout<<"dupa:"<<a[j]<<" "<<a[k]<<endl;
            }
            cout<<"sirul este:";
            for (int l=0;l<i;l++)
                cout<<a[l]<<" ";
            cout<<endl;
         }
         cout<<endl<<"La final, sirul afisat este urmatorul: ";
        for (j=0;j<i;j++)
          if (a[j]>=0)
            cout<<a[j]<<" ";
      return 0;
   }

Am pus si mesaje in cod, ca sa vezi cum evolueaza pe parcurs...

Pentru informatii despre lucrul cu fisiere tepoti inspira de aici: http://tys.ro/programare/cpp/fisiere.html, sau despre vectori aici: http://tys.ro/programare/cpp/vectori.html
« Ultima modificare: Martie 12, 2014, 23:50:42 de către calin ics » Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines