Forum » Programiranje » [C++] Polnjenje Arraya
[C++] Polnjenje Arraya
kunkka500 ::
Pozdravljeni,
imam en problem, ki je takšen:
Rad bi napolnil array z 10 zaporednimi praštevili ki so večja od n.
Imam že funkcijo IsPrime ki preverja ali je neko stevilo prastevilo, nastane problem pri polnjenju arraya... :(
int n = 13;
nekarray[10];
-kako zdaj teh 10 mest napolnim z 10imi zaporednimi praštevili??? :S
imam en problem, ki je takšen:
Rad bi napolnil array z 10 zaporednimi praštevili ki so večja od n.
Imam že funkcijo IsPrime ki preverja ali je neko stevilo prastevilo, nastane problem pri polnjenju arraya... :(
int n = 13;
nekarray[10];
-kako zdaj teh 10 mest napolnim z 10imi zaporednimi praštevili??? :S
genesiss ::
int i = 0; while(i<10) { n++; if(isPrime(n)) { nekarray[i] = n; i++; } }
Zgodovina sprememb…
- spremenil: genesiss ()
kunkka500 ::
Hvala za hiter odgovor, ampak nekako mi še vedno ne dela kot bi moralo...
če izpišem ta števila mi to ne vrne 10 (takojšnjih) zaporednih prašrevil ...
recimo če določim da je: int n=4; potem bi mi moral izpisati: 5, 7, 11, 13, 17, 19, 23, 29, 31, 37
to je del moje trenutne kode:
če izpišem ta števila mi to ne vrne 10 (takojšnjih) zaporednih prašrevil ...
recimo če določim da je: int n=4; potem bi mi moral izpisati: 5, 7, 11, 13, 17, 19, 23, 29, 31, 37
to je del moje trenutne kode:
bool IsPrime(int prastevilo){ //Podano vecje stevilo od 1 //Vrne true ce je prime //False ce ni int i; for (i=2; i<prastevilo; i++){ if (prastevilo % i == 0){ return false; } } return true; } int main(){ int n = 1; int nekarray[10]; int i = 0; while(i<10) { n++; if(IsPrime(n)) { nekarray[i] = n; i++; } } return 0; }
genesiss ::
Meni dela. V zgornjem primeru imaš n=1.
Kako pa izpisuješ?
Kaj ti izpiše?
Kako pa izpisuješ?
Kaj ti izpiše?
Zgodovina sprememb…
- spremenil: genesiss ()
kunkka500 ::
Evo tukaj je z izpisom,... ampak jaz dobim neka čudna, zelo visoka števila (kot npr:1971364090) :S
delam napako ko izpisujem??
delam napako ko izpisujem??
#include <iostream> using namespace std; //test za prastevila bool IsPrime(int prastevilo){ //Podano vecje stevilo od 1 //Vrne true ce je prime //False ce ni int i; for (i=2; i<prastevilo; i++){ if (prastevilo % i == 0){ return false; } } return true; } int main(){ int n = 4; int nekarray[10]; int i = 0; while(i<10) { n++; if(IsPrime(n) && (n >= i)) { nekarray[i] = n; i++; cout << nekarray[i] << ", "; } } system("PAUSE"); return 0; }
genesiss ::
Ja, problem je ker izpisuješ po povečanju i-ja. To pomeni, da dostopaš do polj v tabeli ki jih še nisi napolnil in vsebujejo random vrednosti iz pomnilnika.
Rešitev:
Zamenjaj vrstici 'i++' in 'cout ...'.
Rešitev:
Zamenjaj vrstici 'i++' in 'cout ...'.
Zgodovina sprememb…
- spremenil: genesiss ()
kunkka500 ::
Ok, imam še eno kratko vprašanje... verjetno sem spet samo malo slep :S
tole zadevo hočem pretvoriti v funkcijo, ki bi jo samo klical v mainu..
Zadevo sem naredil takole:
Vendar mi ko kličem to funkcijo
vrne napačen rezultat, v prvotni kodi pa je rezultat pravilen,...
tole zadevo hočem pretvoriti v funkcijo, ki bi jo samo klical v mainu..
int prast [9001]; int lowLimit = -217; int upLimit = 9001; int counter=0; int nextlowLimit; if(lowLimit == 0 || lowLimit < 1){ nextlowLimit = 2; } else{ nextlowLimit = lowLimit; } for(prastevilo=nextlowLimit; prastevilo <= upLimit; prastevilo++){ if (IsPrime(prastevilo) ){ prast[counter++] = prastevilo; } } cout << "V razponu od " << lowLimit << " do " << upLimit << " je: " << counter << " prastevil." << endl; cout << endl;
Zadevo sem naredil takole:
int funkcijadva(int lowLimit, int upLimit, int counter){ int prast [9001]; //array prast int nextlowLimit; //testni pogoj za spodnjo limito zaporedja praštevil int prastevilo; if(lowLimit == 0 || lowLimit < 1){ nextlowLimit = 2; } else{ nextlowLimit = lowLimit; } for(prastevilo=nextlowLimit; prastevilo <= upLimit; prastevilo++){ if (IsPrime(prastevilo) ){ prast[counter++] = prastevilo; } } }
Vendar mi ko kličem to funkcijo
cout << "V razponu je " << funkcijadva(-217, 9001, 0) << " prastevil" << endl;
vrne napačen rezultat, v prvotni kodi pa je rezultat pravilen,...
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Zaporedna praštevila nimajo rada enakih zadnjih števkOddelek: Novice / Znanost in tehnologija | 7725 (5666) | Jst |
» | NUJNO!Algoritmi C++Oddelek: Pomoč in nasveti | 1967 (1229) | DOOM_er |
» | Digitalna evolucija (strani: 1 2 3 4 … 26 27 28 29 )Oddelek: Znanost in tehnologija | 75586 (25755) | pietro |
» | kako definirtati prasteviloOddelek: Programiranje | 3785 (3590) | ooux |
» | Problemi pri C++ programiranju...Oddelek: Programiranje | 3901 (3376) | George |