•Sycron
Client obisnuit
Karma: -141
Deconectat
Mesaje: 66
|
|
« : Februarie 08, 2008, 23:08:57 » |
|
Am functia: int minim(int a[100], int n, int &p) { int i,min; min=a[1]; for(i=2;i<=n;i++) if(ai<min) {min=ai;p=i;} return min; } cand o apelez minim (a,n) -->Too few parameters minim (a,n,p) -->returneaza minimu' corect ... dar p=0 intotdeauna... (in cazut in care minimu se afla pe ultima pozitie atunci p=n;) WOW dc??
|
|
|
Memorat
|
|
|
|
•wefgef
|
|
« Răspunde #1 : Februarie 08, 2008, 23:18:05 » |
|
Pai daca dai teste in care minimul este a[1] nu ar trebui sa se schimbe valoarea lui p.
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•Sycron
Client obisnuit
Karma: -141
Deconectat
Mesaje: 66
|
|
« Răspunde #2 : Februarie 08, 2008, 23:20:55 » |
|
nu am dat teste in care valoarea lui n sa fie 1... :/ nu asta ma intereseaza (se rezolva usor... int p=1;) de ce minim (a,n) --> Too few parameters trebuia sa mearga nu? transmisie prin referinta... (returneaza minimu ... si memoreaza pozitia lui)
|
|
|
Memorat
|
|
|
|
•Darth_Niculus
|
|
« Răspunde #3 : Februarie 08, 2008, 23:47:41 » |
|
de ce minim (a,n) --> Too few parameters pt. ca functia are 3 parametri
|
|
|
Memorat
|
|
|
|
•Sycron
Client obisnuit
Karma: -141
Deconectat
Mesaje: 66
|
|
« Răspunde #4 : Februarie 09, 2008, 00:07:45 » |
|
plz, cine are timp sa-mi modifice functia...ca eu nu inteleg nik. profa a spus k dak un parametru e &p (referinta) nu trebuie sal apelez. Scz d lizibilitatea postului dar sunt p tel mobil acum...
|
|
|
Memorat
|
|
|
|
•Darth_Niculus
|
|
« Răspunde #5 : Februarie 09, 2008, 01:35:23 » |
|
cu exceptia observatiei lui wefgef... functia e buna... greseala se trage de alt-undeva de prin program
|
|
|
Memorat
|
|
|
|
•portocala
Strain
Karma: 12
Deconectat
Mesaje: 24
|
|
« Răspunde #6 : Februarie 09, 2008, 16:27:03 » |
|
cand apelezi o functie, o apelezi cu toti parametrii pe care ii cere(3 in cazul tau),chiar daca sunt sau nu transmisi prin referinta
|
|
|
Memorat
|
|
|
|
•sima_cotizo
|
|
« Răspunde #7 : Februarie 09, 2008, 16:58:20 » |
|
Nu neaparat. Poti sa ii dai unui parametru un "default value" si atunci nu trebuie sa-i mai dai valoarea... int f(long x=0) { return x; } iti va returna 0 daca apelezi cu f()... cel putin in teorie Google it
|
|
|
Memorat
|
|
|
|
•Sycron
Client obisnuit
Karma: -141
Deconectat
Mesaje: 66
|
|
« Răspunde #8 : Februarie 09, 2008, 18:06:23 » |
|
Totuşi ... tot but sunt.. :/ in interiorul funcţiei e valoarea lui p corectă... dar in exteriorul funcţiei (in cazul de faţă în main) valoarea p rămâne nemodificată... DE CE? ca e declarat prin referinţă. Asta este sursa completă. #include<iostream.h> #include<conio.h> int minim(int a[100],int n ,int &p) { int min=a[1],i;p=1; for(i=2;i<=n;i++) if(a[i]<min) {min=a[i];p=i;cout<<p<<" ";} cout<<endl; return min; }
int main() { clrscr(); int n,a[100],p=101; cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; cout<<minim(a,n,p)<<" "<<p;//afiseaza valoarea 101 (a lui p) ceea ce inseamna ca n-au avut loc modificari getch(); return 0; } Vă mulţumesc pentru suport!
|
|
« Ultima modificare: Februarie 09, 2008, 21:11:51 de către Harabula Adrian »
|
Memorat
|
|
|
|
•Sycron
Client obisnuit
Karma: -141
Deconectat
Mesaje: 66
|
|
« Răspunde #9 : Februarie 11, 2008, 16:07:29 » |
|
REZOLVAT!!! Gresit:cout<<minim(a,n,p)<<" "<<p; Corect:cout<<minim(a,n,p); cout<<" "<<p;
|
|
|
Memorat
|
|
|
|
•yahim
Strain
Karma: 0
Deconectat
Mesaje: 1
|
|
« Răspunde #10 : Februarie 15, 2008, 17:43:31 » |
|
am si io nevoie de un algoritm al lui lee nerecursiv va rog...deabia am invatat recursivitatea si mi-a zis profa k imi trebuie lee si maine e olmpiada ...si am unu..care e destul de complicat...poate nerecursiv e mai usor..
|
|
|
Memorat
|
|
|
|
|