Pregled posta

Adresa bloga: https://blog.dnevnik.hr/prirodaa

Marketing

numbers.txt - izbacivanje neparnih

/*
U jednodimenzionalno polje spremaju se cijeli brojevi i broj njihova
pojavljivanja. Podaci se citaju iz datoteke numbers.txt. Prvi redak
sadrzi broj brojeva u datoteci, a preostali redci sadrze dva broja,
jedan predstavlja vrijednost, a drugi broj pojavljivanja. Dinamicki
alocirajte memoriju za ukupan broj elemenata, kao i za sve
elemente. Napisite funkciju koja ce kreirati novo polje na temelju
ulaznog polja i to tako da izbaci iz ulaznog polja sve neparne
brojeve. Funkcija kao rezultat vraca pokazivac na novo polje.
Elementi novog polja ispisuju se u glavnoj funkciji. Koristiti
aritmetiku pokazivaca.
*/
#include
#include
#include
using namespace std;
struct num
{ int number;
int freq;
};
int *write(num *p, int *n, int *&c);
int main()
{ifstream input("numbers.txt");
int *n=new int; *newN=new int, tmp, i=0;
input>>*n;
num *p=new num[*n]; //2
while (input>>tmp)
{ p[i].number=tmp;
input>>tmp;
i++;
(p+i)->freq=tmp; }
int *newP=write(p, n, newN); //2
for (int i=0; i<*newN; i++)
cout< cout< delete [] p; //0.5
delete [] newP; //0.5
delete n; //0.5
delete newN; //0.5
input.close();
return 0;
}
int *write(num *p, int *n, int *&c) //2
{*c=0;
for (int i=0; i<*n; i++)
{
if ((*(p+i)).number%2!=0) *c+=1; //2 provjera da li je različito od nule i neparno
}
int *newP=new int[*c];
int t=0;
for (int i=0; i<*n; i++)
{ if ((*(p+i)).number%2!=0)
{ *(newP+t)=(*(p+i)).number; //2
t++; }
} cout< return newP; //1
}



Post je objavljen 24.04.2013. u 02:08 sati.