infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: Ursulean Magda din Februarie 19, 2009, 21:59:56



Titlul: Intrebare legata de monitorul de evaluare
Scris de: Ursulean Magda din Februarie 19, 2009, 21:59:56
Primesc aceeasi eroare,

Eroare de compilare: user.cpp:34:2: warning: no newline at end of file user.cpp: In function 'void citire()': user.cpp:9: error: 'fin' was not declared in this scope user.cpp: In function 'int main()': user.cpp:25: error: 'ifstream' was not declared in this scope user.cpp:25: error: expected `;' before 'fin' user.cpp:26: error: 'ofstream' was not declared in this scope user.cpp:26: error: expected `;' before 'fout' user.cpp:28: error: 'fout' was not declared in this scope user.cpp:30: error: 'fin' was not declared in this scope

cand incerc sa postez solutia la problema http://infoarena.ro/problema/cmlsc (http://infoarena.ro/problema/cmlsc)

Codul este urmatorul:
Cod:
#include <fstream>
#define NMAX 1025



int m,n,i,max,a[NMAX],b[NMAX],sol[NMAX],poz=1,j,loc,k;

void citire()
{ fin>>m>>n;
  for (int i=1; i<=m; i++) fin>>a[i];
  for (int i=1; i<=n; i++) fin>>b[i];
}

int solutie(int i, int j)
{ if (i==m+1 && j==n+1) return max;
    else if (a[i]==b[j]) { max++; sol[poz]=a[i]; poz++; solutie(i+1, j+1); }
     else if (j==n) solutie(i+1,1);
else solutie(i, j+1);


}


int main()
{ ifstream fin("cmlsc.in");
  ofstream fout("cmlsc.out");
  citire();
  fout<<solutie(1,1)<<'\n';
  for (int i=1; i<=max; i++) fout<<sol[i]<<' ';
  fin.close();
  fout.close();
  return 0;

}

Sunt nou inregistrata si inca nu mi-am dat seama ce trebuie sa fac pentru a nu mai obtine eroare la compilare. Ma poate ajuta cineva?  :D


Titlul: Răspuns: Intrebare legata de monitorul de evaluare
Scris de: Florian Marcu din Februarie 19, 2009, 22:06:01
Introdu dupa
Cod:
#include <fstream>
#define NMAX 1025
asta:
Cod:
 using namespace std; 

Deci sa ai asa
Cod:
#include <fstream>
#define NMAX 1025
using namespace std;

.../*restul programului */...
Ar trebui sa mearga!


Titlul: Răspuns: Intrebare legata de monitorul de evaluare
Scris de: gaboru corupt din Februarie 19, 2009, 22:06:38
fisierele le deschizi in main, si citesti in alta functie. declara fisierele global si o sa mearga

PS: declari de mai multe ori variabila i ...declar-o global si o sa mearga. si fa si ce zice florian, si o sa mearga


Titlul: Răspuns: Intrebare legata de monitorul de evaluare
Scris de: Ursulean Magda din Februarie 19, 2009, 22:12:47
Am facut ambele modificari si acum obtin alte erori de compilare. Iata codul:
Cod:
#include <fstream>
#define NMAX 1025

using namespace std;
ifstream fin("cmlsc.in");
ofstream fout("cmlsc.out");
int m,n,i,max,a[NMAX],b[NMAX],sol[NMAX],poz=1,j,loc,k;

void citire()
{ fin>>m>>n;
  for (i=1; i<=m; i++) fin>>a[i];
  for (i=1; i<=n; i++) fin>>b[i];
}

int solutie(int i, int j)
{ if (i==m+1 && j==n+1) return max;
    else if (a[i]==b[j]) { max++; sol[poz]=a[i]; poz++; solutie(i+1, j+1); }
     else if (j==n) solutie(i+1,1);
else solutie(i, j+1);


}


int main()
{
  citire();
  fout<<solutie(1,1)<<'\n';
  for (i=1; i<=max; i++) fout<<sol[i]<<' ';
  fin.close();
  fout.close();
  return 0;

}

Erorile sunt: Eroare de compilare: user.cpp:34:2: warning: no newline at end of file user.cpp: In function 'int solutie(int, int)': user.cpp:16: error: reference to 'max' is ambiguous user.cpp:7: error: candidates are: int max /usr/include/c++/4.2/bits/stl_algobase.h:246: error: template<class _Tp, class _Compare> const _Tp& std::max(const _Tp&, const _Tp&, _Compare) /usr/include/c++/4.2/bits/stl_algobase.h:204: error: template<class _Tp> const _Tp& std::max(const _Tp&, const _Tp&) user.cpp:16: error: reference to 'max' is ambiguous user.cpp:7: error: candidates are: int max /usr/include/c++/4.2/bits/stl_algobase.h:246: error: template<class _Tp, class _Compare> const _Tp& std::max(const _Tp&, const _Tp&, _Compare) /usr/include/c++/4.2/bits/stl_algobase.h:204: error: template<class _Tp> const _Tp& std::max(const _Tp&, const _Tp&) user.cpp:17: error: reference to 'max' is ambiguous user.cpp:7: error: candidates are: int max /usr/include/c++/4.2/bits/stl_algobase.h:246: error: template<class _Tp, class _Compare> const _Tp& std::max(const _Tp&, const _Tp&, _Compare) /usr/include/c++/4.2/bits/stl_algobase.h:204: error: template<class _Tp> const _Tp& std::max(const _Tp&, const _Tp&) user.cpp:17: error: reference to 'max' is ambiguous user.cpp:7: error: candidates are: int max /usr/include/c++/4.2/bits/stl_algobase.h:246: error: template<class _Tp, class _Compare> const _Tp& std::max(const _Tp&, const _Tp&, _Compare) /usr/include/c++/4.2/bits/stl_algobase.h:204: error: template<class _Tp> const _Tp& std::max(const _Tp&, const _Tp&) user.cpp: In function 'int main()': user.cpp:29: error: reference to 'max' is ambiguous user.cpp:7: error: candidates are: int max /usr/include/c++/4.2/bits/stl_algobase.h:246: error: template<class _Tp, class _Compare> const _Tp& std::max(const _Tp&, const _Tp&, _Compare) /usr/include/c++/4.2/bits/stl_algobase.h:204: error: template<class _Tp> const _Tp& std::max(const _Tp&, const _Tp&) user.cpp:29: error: reference to 'max' is ambiguous user.cpp:7: error: candidates are: int max /usr/include/c++/4.2/bits/stl_algobase.h:246: error: template<class _Tp, class _Compare> const _Tp& std::max(const _Tp&, const _Tp&, _Compare) /usr/include/c++/4.2/bits/stl_algobase.h:204: error: template<class _Tp> const _Tp& std::max(const _Tp&, const _Tp&)


Titlul: Răspuns: Intrebare legata de monitorul de evaluare
Scris de: Savin Tiberiu din Februarie 19, 2009, 22:16:47
cand ai scris using namespace std, ai importat numele functiilor folosite in librariile din STL unde exista functia max. Tu in schimb ai definit o variabila max, de acea el zice ca referinta la max e ambigua. Schimba numele variabilei max in mx si ar trebui sa mearga, cred.


Titlul: Răspuns: Intrebare legata de monitorul de evaluare
Scris de: Ursulean Magda din Februarie 19, 2009, 22:22:57
Multumesc mult tuturor! Am scapat acum de erorile de compilare!!  :D