Titlul: Eroare de compilare Scris de: Da Vinci din Februarie 18, 2016, 22:38:22 De ce urmatorul cod imi merge cand introduc datele manual,dar imi da eroare de compilare in evaluatorul de pe infoarena?
Multumesc anticipat! http://www.infoarena.ro/job_detail/1605358 Cod: #include <fstream> using namespace std; ifstream fin("arc.in"); ofstream fout("arc.out"); int v,c,n,a[10000],b[10000],i,prev,k,p=1,mx=4,poz,aux,s; int main() {fin>>v>>n; if(v==1) {for(i=1;i<=n;i++) {fin>>c; if(c!=prev) { prev=c; k++; } } fout<<k; } else{ k=0; fin>>c; prev=c; if(c!=prev) { a[p]=prev; b[p]=k; prev=c; k=0; p++; } else if(c==prev) k++; for(i=2;i<=n;i++) {fin>>c; if(c!=prev) { a[p]=prev; b[p]=k; prev=c; k=1; p++; } else if(c==prev) {k++;} } a[p]=c;b[p]=k; n=p; while(mx>=3){mx=-1; for(i=1;i<=n;i++){ if(b>mx) {mx=b;poz=i;}} if(mx>=3){ a[poz]=0;b[poz]=0; for(i=poz;i<=n-1;i++){ aux=a; a=a[i+1]; a[i+1]=aux; aux=b; b=b[i+1]; b[i+1]=aux;} n--; for(i=1;i<=n-1;i++) { if(a==a[i+1]){ b+=b[i+1]; a[i+1]=0; b[i+1]=0; for(i=i+1;i<=n;i++) { aux=a; a=a[i+1]; a[i+1]=aux; aux=b; b=b[i+1]; b[i+1]=aux;} n--; break;} } } else break; } if(n==0)fout<<"0"; else{ for(i=1;i<=n;i++) s+=b; fout<<s<<"\n"; for(i=1;i<=n;i++){ while(b!=0) {b--; fout<<a<<"\n";}} } } return 0; } Titlul: Răspuns: Eroare de compilare Scris de: Gavrila Vlad din Februarie 18, 2016, 23:58:30 In namespace-ul std exista o functie numita tot prev, ca variabila ta. Atunci cand incerci sa compilezi si accesezi variabila prev, compilatorul nu stie daca te referi la functia din std sau la variabila ta (desi pentru tine e evident pe care o vrei). Solutia corecta ar fi sa nu mai folosesti tot namespace-ul prin
Cod: using namespace std; ci sa apelezi functiile din namespace astfel... fin>>x; Cod: std :: fin>>x; Imi dau seama ca asta e incomod (nici eu nu fac asa :oops: ), asa ca o solutie alternativa ar fi sa iti numesti variabilele "prv" si "nxt" cand ai vrea "prev" si "next" (si cu next e aceeasi problema). Cat despre de ce la tine merge si pe infoarena nu, probabil tu ai un compilator mai vechi / pe un standard mai vechi C++ unde "prev" si "next" nu sunt functii in std. |