Forum » Programiranje » problem s funkcijo-C++
problem s funkcijo-C++
hexor ::
Pozdrav vsem!
Prosil bi nekoga,če mi lahko pove oz. pomaga pri naslednji stvari-namreč imam fukcijo,ki vsebuje tri parametre(tabelo,njeno dimenzijo,ter določen parameter-štejem ponovitve tega parametra v tabeli).Sedaj pa mi v main-u,ko skušam klicati funkcijo javi napako(sumim na način klicanja tabele-po referenci ali kako že)...
Hvala vsem za pomoč!
Prosil bi nekoga,če mi lahko pove oz. pomaga pri naslednji stvari-namreč imam fukcijo,ki vsebuje tri parametre(tabelo,njeno dimenzijo,ter določen parameter-štejem ponovitve tega parametra v tabeli).Sedaj pa mi v main-u,ko skušam klicati funkcijo javi napako(sumim na način klicanja tabele-po referenci ali kako že)...
Hvala vsem za pomoč!
#include<iostream> #include<time.h> using namespace std; int ponovitev(int tab[],int velikost,int stevilo) { int stevec_stevil=0; for(int i=0;i<velikost;i++) { tab[i]=rand()% velikost + 1; if(tab[i]==stevilo) { stevec_stevil++; } } return stevec_stevil; } int main() { cout<<ponovitev(tab[0],10,5); // napaka system("PAUSE"); return 0; }
- spremenil: Mavrik ()
techfreak :) ::
Lahko pa pri funkciji kot prvi atribut daš int &tab, v njej pa namesto tab[i] uporabiš *(&tab+i).
techfreak :) ::
Polja so kazalci, stvar pa lahko rešiš tako, da funkciji podaš polje (tab) in ne samo prvi element polja (tab[0]).
mn ::
Prvo kot prvo, napiši točno napako, ki ti jo javi kompajler ker boš tako vsem skupaj močno olajšal delo. Prvi problem ki ga jaz vidim je, da nikjer ne deklariraš arraya tab.
Torej pred "cout<<ponovitev(tab[0],10,5); // napaka" napiši "int tab[10];"
Torej pred "cout<<ponovitev(tab[0],10,5); // napaka" napiši "int tab[10];"
Groove ::
#include <iostream> #include <stdlib.h> #include <time.h> using namespace std; int ponovitev (int tab[], int velikost, int stevilo) { int stevec_stevil = 0; for(int i = 0; i < velikost; i++) { tab[i] = rand() % velikost + 1; if(tab[i] == stevilo) { stevec_stevil++; } } return stevec_stevil; } int main() { srand (time(NULL)); int tab[10]; cout << ponovitev (tab, 10, 5); cin.get(); return 0; }
Tole bo verjetno, ane?
Manjka ti deklaracija tabele (int tab[10]), srand(time(NULL)), system("PAUSE") naj se načeloma ne bi uporabljal, pa knjižico stdlib.h potrebuješ.
Zgodovina sprememb…
- spremenil: Groove ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [C] Funkcija vrnitev kazalcaOddelek: Programiranje | 1191 (907) | MrStein |
» | [C++] Iskalno drevo implementacijaOddelek: Programiranje | 2308 (1866) | eXoo |
» | Pomoč pri programiranju z javoOddelek: Programiranje | 3566 (2493) | milc |
» | [c++]UrejanjepoljaOddelek: Programiranje | 1361 (1182) | purki |
» | Iskanje naslednje ponovitve - najboljši algoritem (strani: 1 2 )Oddelek: Programiranje | 4447 (3505) | Thomas |