Informatică, întrebare adresată de davidpupaza, 8 ani în urmă

Pe prima linie a fişierului bac.in se află un număr natural nenul n (n≤1000), iar pe a doua linie a fişierului se află un şir format din n numere naturale, despărţite prin câte un spaţiu, fiecare număr fiind format din cel mult 4 cifre.

Scrieţi un program C/C++ care citeşte numerele din fişier şi care afişează pe ecran mesajul DA dacă elementele pare în şir sunt în ordine crescătoare, iar cele impare sunt în ordine descrescătoare şi mesajul NU în caz contrar.

Exemplu: dacă fişierul bac.in are conţinutul alăturat, pe ecran se va afişa: DA
8
10 1133 12 331 42 1354 221 13


Eu am incercat o rezolvare dar nu stiu cum sa mut la stanga elementele dupa ce le scriu in alt sir si imi ramane cate un 0 intre ele.

#include
#include
using namespace std;
ifstream f("bac.in");

int main()
{
int n,a[15001],b[15001],c[15001],ok1=1,ok2=1;
f>>n;
for(int i=0; i >a[i];
for(int i=0; i b[i+1])
ok1=0;
for(int i=0; i<=n; i++)
if(c[i] ok2=0;

if(ok1==1 && ok2==1)
cout<<"DA";
else cout<<"NU";
return 0;
}


boiustef: de ce le muți... nu folosi alt tablou...
boiustef: să încerc eu altfel...
boiustef: am folosit 6 variabile de tip int ... atât

Răspunsuri la întrebare

Răspuns de boiustef
2

Răspuns:

#include <iostream>

#include <fstream>

using namespace std;

ifstream f("bac.in");

int n, a=-1,b=-1,c,i, ok=1;

int main()

{

   f >> n;

   for (i=1; i<=n && ok; i++ )

   {

       f >> c;

       if (c%2==0)

       {

           if (a==-1) a=c;

           else

           {

              if (c <= a) ok=0;

              else a=c;

           }

       }

       else

       {

           if (b==-1) b=c;

           else

           {

               if (c >= b) ok=0;

               else b=c;

           }

       }

   }

   if (ok)

       cout << "DA";

   else

       cout << "NU";

}

Explicație:

Sper să fie clar...

Nu am folosit vectori, decât 2 variabile ce memorizează ultimul par și impar citite, și o variabilă de lucru c, ce citește nr din fișier...

Succese! Apar neclarități, sunt aici...

Alte întrebări interesante