Preskoči na sadržaj
Ista raja. Nova runda.
GAMERZ.ba — REBORN
Pitanje U kanti Poništeno pitanje 41 bod

C++ nizovi

412 pregleda · 9 odgovora · otvorena 02.02.2012. u 13:31

Hmm imam problemcic :S dobio za zadacu neki programcic al me neide nikako ... ugl ovako ide text :
Napisati program koji unosi tri različita niza promjenjivih
dužina, program treba da napravi četvrti niz u kojem će se nalaziti
-1.unija ovih nizova ali sa ponavljanjem brojeva. ( ovo sam uradio )
-2.unija ovih nizova bez ponavljanja
-3.broj koji se najchesce ponavlja
-4.broj koji se najrjedje ponavlja :S

ev do kud sam ja dosao :S :

#include <iostream>
using namespace std;
void unos(int *niz, int duzina);
void ispis (int *niz, int duzina);
int *dodaj (int element, int *niz, int &duzina);
int main (){
int i, duz1, duz2, duz3, duz4=0;
cout<<"Koliko prvi niz ima elemenata: ";
cin>>duz1;
cout<<"Koliko drugi niz ima elemenata: ";
cin>>duz2;
cout<<"Koliko treci niz ima elemenata: ";
cin>>duz3;
int *prviNiz = new int [duz1];
int *drugiNiz = new int [duz2];
int *treciNiz = new int [duz3];
int *cetvrtiNiz = new int [duz4];
cout << "nPrvi niz. " << endl;
unos(prviNiz, duz1);
cout << "nDrugi niz. " << endl;
unos(drugiNiz, duz2);
cout << "nTreci niz. " << endl;
unos(treciNiz, duz3);
for (i=0; i<duz1; i++){
cetvrtiNiz = dodaj(prviNiz[i], cetvrtiNiz, duz4);}
for (i=0; i<duz2; i++){
cetvrtiNiz = dodaj(drugiNiz[i], cetvrtiNiz, duz4);}
for (i=0; i<duz3; i++){
cetvrtiNiz = dodaj(treciNiz[i], cetvrtiNiz, duz4);}
cout << "nCetvrti niz je: " ;
ispis (cetvrtiNiz, duz4);
cout <<endl;
delete [] prviNiz;
delete [] drugiNiz;
delete [] treciNiz;
delete [] cetvrtiNiz;
system ("pause";);
return 0;
}
void unos(int *niz, int duzina){
for (int i=0; i<duzina; i++){
cout<<"Unesite "<<i+1<<" clan niza: ";
cin>>niz[i];}}
void ispis (int *niz, int duzina){
for (int i=0; i<duzina; i++)
cout<<niz[i]<<" ";}
int *dodaj (int element, int *niz, int &duzina){
int *temp = new int[duzina+1];
for (int i=0; i<duzina; i++)
temp[i] = niz[i];
temp[duzina]=element;
duzina++;
delete []niz;
return temp;}


nadam se da ima neko sa FER-a ja se ubi od juche al neide :S
Dokad ti treba?
dea je napisao/la:
Dokad ti treba?
sutra ako bi moglo biti gotovo super :) ako ne sto brze to bolje
aarmin je napisao/la:
http://pastebin.com/raWbtJDP
Evo ti.. ako hoces mogu da ti ubacim i da ako ima vise elemenata koji se pojavljuju najvise ili najmanje puta :D
:S prob je sto on nama neda da koristimo druge biblioteke :S cak ni math...
Ti neznaš gramatiku ili si postao mawa lodacha pa pišeš sve sa h?
sharecash je napisao/la:
Ti neznaš gramatiku ili si postao mawa lodacha pa pišeš sve sa h?
Halo gramatičar, neznaš se piše odvojeno - ne znaš * (rječica NE se uz glagol uvijek piše odvojeno )

in your face xd

9-)
aarmin je napisao/la:
Napisacu ti sada rjesenje koje koristi samo iostream.. :D


EDIT: evo ti kod ( http://pastebin.com/FapZuehc ), a sad daj bobe :D
brate nema ti nikako ispisa :S... kad unesem nizove samo mi zatvori dos. xD

a i umjedjuvremenu sam dobio od druga program uradjen..

ev ako kome zatreba :)

#include<iostream>
using namespace std;

void unesiNiz(int* &niz,int n) {
for(int i=0;i<n;i++)
cin>>niz[i];
}

void ispisiNiz(int* &niz,int n) {
for(int i=0;i<n;i++)
cout<<niz[i]<<" ";
}

void unSaPon(int* &niz1,int* &niz2,int* &niz3,int n1,int n2,int n3,int* &noviNiz) {
noviNiz = new int[n1+n2+n3];
for(int i=0;i<n1;i++)
noviNiz[i]=niz1[i];
for(int i=0;i<n2;i++)
noviNiz[n1+i]=niz2[i];
for(int i=0;i<n3;i++)
noviNiz[n1+n2+i]=niz3[i];
}

void unBezPon(int* &niz,int n,int &nNovi,int* &noviNiz) {
for(int i=0;i<n;i++) {
int tmpbr=0;
while(niz[i]!=niz[tmpbr]) tmpbr++;
if(tmpbr==i) nNovi++;
}
noviNiz = new int[nNovi];
int br=0;
for(int i=0;i<n;i++) {
bool t = 0;
for(int j=0;j<br;j++)
if(noviNiz[j]==niz[i]) t=1;
if(!t) noviNiz[br++]=niz[i];
}
}

void razNizova(int* &niz1,int* &niz2,int* &niz3,int n1,int n2,int n3,int* &noviNiz,int &nNovi) {
for(int i=0;i<n1;i++) {
int br=0;
while(niz2[br]!=niz1[i]&&br<n2) br++;
if(br==n2) {
br=0;
while(niz3[br]!=niz1[i]&&br<n3) br++;
if(br==n3) {
br=0;
while(niz1[br]!=niz1[i]&&br<i) br++;
if(br==i) nNovi++;
}
}
}
noviNiz = new int[nNovi];
nNovi=0;
for(int i=0;i<n1;i++) {
int br=0;
while(niz2[br]!=niz1[i]&&br<n2) br++;
if(br==n2) {
br=0;
while(niz3[br]!=niz1[i]&&br<n3) br++;
if(br==n3) {
br=0;
while(niz1[br]!=niz1[i]&&br<i) br++;
if(br==i) {
noviNiz[nNovi]=niz1[i];
nNovi++;
}
}
}
}
}




int najcesciBr(int* &niz,int n) {
int poz,br1=INT_MIN;
for(int i=0;i<n;i++) {
int br2=0;
for(int j=i;j<n;j++)
if(niz[i]==niz[j]) br2++;
if(br2>br1) {
br1=br2;
poz=i;
}
}
return niz[poz];
}

int najrijedjiBr(int* &niz,int n) {
int poz,br1=INT_MAX;
for(int i=0;i<n;i++) {
int br2=0;
for(int j=0;j<n;j++)
if(niz[i]==niz[j]) br2++;
if(br2<br1) {
br1=br2;
poz=i;
}
}
return niz[poz];
}


int main() {
int n1,n2,n3;
cout<<"Unesite duzinu prvog niza: ";
cin>>n1;
cout<<"Unesite duzinu drugog niza: ";
cin>>n2;
cout<<"Unesite duzinu treceg niza: ";
cin>>n3;
int *niz1 = new int[n1],*niz2 = new int[n2],*niz3 = new int[n3];
cout<<"Unesite elemente prvog niza:\n";
unesiNiz(niz1,n1);
cout<<"Unesite elemente drugog niza:\n";
unesiNiz(niz2,n2);
cout<<"Unesite elemente treceg niza:\n";
unesiNiz(niz3,n3);
int *nizSaPon, *nizBezPon, *nizRaz;
int nUnBP=0,nRazN=0;
unSaPon(niz1,niz2,niz3,n1,n2,n3,nizSaPon);
unBezPon(nizSaPon,n1+n2+n3,nUnBP,nizBezPon);
razNizova(niz1,niz2,niz3,n1,n2,n3,nizRaz,nRazN);
cout<<"\n\nUnija nizova sa ponavljanjem elemenata: ";
ispisiNiz(nizSaPon,n1+n2+n3);
cout<<"\n\nUnija nizova bez ponavljanja elemenata: ";
ispisiNiz(nizBezPon,nUnBP);
cout<<"\n\nRazlika nizova: ";
ispisiNiz(nizRaz,nRazN);
cout<<"\n\nBroj koji se najvise puta ponovio: "<<najcesciBr(nizSaPon,n1+n2+n3);
cout<<"\n\nBroj koji se najmanje puta ponovio: "<<najrijedjiBr(nizSaPon,n1+n2+n3);
delete [] niz1;
delete [] niz2;
delete [] niz3;
delete [] nizSaPon;
delete [] nizBezPon;
delete [] nizRaz;
system("pause";);
return 0;
}
Ecoo je napisao/la:
brate nema ti nikako ispisa :S... kad unesem nizove samo mi zatvori dos. xD

a i umjedjuvremenu sam dobio od druga program uradjen..

ev ako kome zatreba :)

#include<iostream>
using namespace std;

void unesiNiz(int* &niz,int n) {
for(int i=0;i<n;i++)
cin>>niz[i];
}

void ispisiNiz(int* &niz,int n) {
for(int i=0;i<n;i++)
cout<<niz[i]<<" ";
}

void unSaPon(int* &niz1,int* &niz2,int* &niz3,int n1,int n2,int n3,int* &noviNiz) {
noviNiz = new int[n1+n2+n3];
for(int i=0;i<n1;i++)
noviNiz[i]=niz1[i];
for(int i=0;i<n2;i++)
noviNiz[n1+i]=niz2[i];
for(int i=0;i<n3;i++)
noviNiz[n1+n2+i]=niz3[i];
}

void unBezPon(int* &niz,int n,int &nNovi,int* &noviNiz) {
for(int i=0;i<n;i++) {
int tmpbr=0;
while(niz[i]!=niz[tmpbr]) tmpbr++;
if(tmpbr==i) nNovi++;
}
noviNiz = new int[nNovi];
int br=0;
for(int i=0;i<n;i++) {
bool t = 0;
for(int j=0;j<br;j++)
if(noviNiz[j]==niz[i]) t=1;
if(!t) noviNiz[br++]=niz[i];
}
}

void razNizova(int* &niz1,int* &niz2,int* &niz3,int n1,int n2,int n3,int* &noviNiz,int &nNovi) {
for(int i=0;i<n1;i++) {
int br=0;
while(niz2[br]!=niz1[i]&&br<n2) br++;
if(br==n2) {
br=0;
while(niz3[br]!=niz1[i]&&br<n3) br++;
if(br==n3) {
br=0;
while(niz1[br]!=niz1[i]&&br<i) br++;
if(br==i) nNovi++;
}
}
}
noviNiz = new int[nNovi];
nNovi=0;
for(int i=0;i<n1;i++) {
int br=0;
while(niz2[br]!=niz1[i]&&br<n2) br++;
if(br==n2) {
br=0;
while(niz3[br]!=niz1[i]&&br<n3) br++;
if(br==n3) {
br=0;
while(niz1[br]!=niz1[i]&&br<i) br++;
if(br==i) {
noviNiz[nNovi]=niz1[i];
nNovi++;
}
}
}
}
}




int najcesciBr(int* &niz,int n) {
int poz,br1=INT_MIN;
for(int i=0;i<n;i++) {
int br2=0;
for(int j=i;j<n;j++)
if(niz[i]==niz[j]) br2++;
if(br2>br1) {
br1=br2;
poz=i;
}
}
return niz[poz];
}

int najrijedjiBr(int* &niz,int n) {
int poz,br1=INT_MAX;
for(int i=0;i<n;i++) {
int br2=0;
for(int j=0;j<n;j++)
if(niz[i]==niz[j]) br2++;
if(br2<br1) {
br1=br2;
poz=i;
}
}
return niz[poz];
}


int main() {
int n1,n2,n3;
cout<<"Unesite duzinu prvog niza: ";
cin>>n1;
cout<<"Unesite duzinu drugog niza: ";
cin>>n2;
cout<<"Unesite duzinu treceg niza: ";
cin>>n3;
int *niz1 = new int[n1],*niz2 = new int[n2],*niz3 = new int[n3];
cout<<"Unesite elemente prvog niza:\n";
unesiNiz(niz1,n1);
cout<<"Unesite elemente drugog niza:\n";
unesiNiz(niz2,n2);
cout<<"Unesite elemente treceg niza:\n";
unesiNiz(niz3,n3);
int *nizSaPon, *nizBezPon, *nizRaz;
int nUnBP=0,nRazN=0;
unSaPon(niz1,niz2,niz3,n1,n2,n3,nizSaPon);
unBezPon(nizSaPon,n1+n2+n3,nUnBP,nizBezPon);
razNizova(niz1,niz2,niz3,n1,n2,n3,nizRaz,nRazN);
cout<<"\n\nUnija nizova sa ponavljanjem elemenata: ";
ispisiNiz(nizSaPon,n1+n2+n3);
cout<<"\n\nUnija nizova bez ponavljanja elemenata: ";
ispisiNiz(nizBezPon,nUnBP);
cout<<"\n\nRazlika nizova: ";
ispisiNiz(nizRaz,nRazN);
cout<<"\n\nBroj koji se najvise puta ponovio: "<<najcesciBr(nizSaPon,n1+n2+n3);
cout<<"\n\nBroj koji se najmanje puta ponovio: "<<najrijedjiBr(nizSaPon,n1+n2+n3);
delete [] niz1;
delete [] niz2;
delete [] niz3;
delete [] nizSaPon;
delete [] nizBezPon;
delete [] nizRaz;
system("pause";);
return 0;
}
-.-
program ima ispis... izgleda da si zaboravio da stavis system ("pause";) na kraju, ili da predjes na code::blocks... daj bobe!

Prijavi se da bi odgovorio/la na ovu temu.