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

Buna!
Am aceasta rezolvare la problema, #272 PareSort de pe pbinfo. Imi da acelasi rezultat ca si pe pagina, dar iau 0 pct, oare de ce?
Ma puteti ajuta oare???

#include
#include
using namespace std;
int pare (int p)
{ bool par;
if (p % 2==0)
par=true;
return par;
}

int main()
{
ifstream in("paresort.in");
ofstream out("paresort.out");
int n,a[1001],contor=0,i,x;
in >>n;
for (i=1; i<=n;i++)
{
in >>x;
if (pare(x))
a[++contor]=x;
}
for (i=1; i<=contor;i++)
if (a[i]>a[i+1])
swap (a[i],a[i+1]);
if (contor !=0)
{ out < for (i=1; i<=contor;i++)
out < }
else
cout <<"NU EXISTA";
return 0;
}


boiustef: nu se poate inţelege nimic din codul tău, e tunchiat...
când postezi aici cod după semnul ; tr să laşi spaţiu sau mai bn să folosesti site-ul pastebin.com ca să pui acolo codul tău la care îţi dă un link pe care îl pui aici
boiustef: după semnul < tr sa pui spatiu
boiustef: am facut cu vector de frecventa
boiustef: nu pot coment codul tău deoarece nu-l văd complet, ci trunchiat
boiustef: Dacă asta este sortarea făcută de tine
for (i=1; i<=contor;i++)
if (a[i]>a[i+1])
swap (a[i],a[i+1]);
atunci nu e corectă
boiustef: ar putea fi aşa:
int sortat=0;
while (sortat==0)
{
sortat=1;
for (i=1; iif (a[i]>a[i+1])
{swap (a[i],a[i+1]); sortat=0;}
}
boiustef: Vezi a trunchiat si codul meu....

int sortat=0;
while (sortat==0)
{
sortat=1;
for (i=1; i < contor; i++)
iif (a[i] > a[i+1])
{swap (a[i],a[i+1]); sortat=0;}
}

Răspunsuri la întrebare

Răspuns de boiustef
0

#include <iostream>

#include <fstream>

using namespace std;

ifstream f("paresort.in");

ofstream g("paresort.out");

short fr[10000], num, i, j, n, m;

int main()

{

   f >> n;

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

   {

       f >> num;

       if (num%2==0)

       {

           ++m; ++fr[num];

       }

   }

   if (m==0) g << "nu exista";

   else {

           g << m << "\n";

   for (i=2; i<10000; i+=2)

   {

       if (fr[i])

          for (j=1; j<=fr[i]; ++j)

              g << i << " ";

   }

   }

}

Răspuns de pmarian98
0

#include <bits/stdc++.h>

using namespace std;

int n, i, aux, v[1002], w[1002], a;

bool ok;

int main()

{

   ifstream f("paresort.in");

   ofstream g("paresort.out");

   f >> n;

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

   {

       f >> v[i];

       if(v[i] % 2 == 0) w[++ a] = v[i];

   }

   if(a == 0) {g << "nu exista"; return 0;}

   do

   {

       ok = true;

       for(i = 1; i < a; i ++)

       if(w[i] > w[i + 1])

       {

           aux = w[i];

           w[i] = w[i + 1];

           w[i + 1] = aux;

           ok = false;

       }

   }while(!ok);

   g << a << "\n";

   for(i = 1; i <= a; i ++)

   g << w[i] << " ";

   return 0;

}

Alte întrebări interesante