|
Titlul: problema .campion Scris de: Plesa Mihail Iulian din Februarie 15, 2013, 18:25:38 Salut!
Am incercat sa fac problema http://campion.edu.ro/arhiva/index.php?page=problem&action=view&id=510 Am implementat-o dupa indicatiile de rezolvare: Cod: #include<fstream> Multumesc ! Titlul: Răspuns: problema .campion Scris de: fdproxy din Februarie 15, 2013, 20:17:37 Nu am studiat problema pe care incearca s-o rezolve aplicatia. Am cateva observatii legate de implementare:
- De ce vectorii s si sum trebuie sa fie atat de mari? Stiva, probabil ca nu este foarte multumita. Nu programez sub Linux, dar probabil ca mesajul de eroare inseamna ca ai depasit dimensiunea maxima a stivei. - De ce fstream si nu ifstream si ofstream? - Deschiderea cu succes a unui fisier trebuie confirmata: std::ifstream is( "tren1.in" ); if ( ! is ) return -1; // eroare la deschidere - Este indicat ca variabilele locale sa fie declarate pe masura ce sunt folosite. De exemplu, nu are rost sa declari i la inceputul functiei daca este folosit doar in for. Mai corect ar fi: for ( int i = 0; i < n; ++ i ) - Functia main trebuie sa intoarca o valoare. Succes. Titlul: Răspuns: problema .campion Scris de: Stefan Eniceicu din Februarie 15, 2013, 20:30:44 Incearca sa declari vectorii mari in afara mainului (pe heap ai mai mult decat pe stiva). Asa ar trebui sa nu mai ai KBS-uri.
BTW: "renul despre care discutam este format dintr-o locomotiva si N vagoane"...made my day. Titlul: Răspuns: problema .campion Scris de: fdproxy din Februarie 15, 2013, 21:16:00 Incearca sa declari vectorii mari in afara mainului (pe heap ai mai mult decat pe stiva) Inainte de a muta declaratia variabilelor, estimeaza spatiul necesar: probabil ca 50000 este mai mult decat ai nevoie. Variabilele globale (cele declarate in afara functiei main) sunt alocate intr-un alt segment de memorie, nu pe heap. //... int g_i; // variabila globala //... int main() { int i; // variabila locala int* pi = new int; // pi este locala dar indica catre o zona de memorie alocata din heap *pi = 10; // memoria de pe heap va contine 10 delete pi; // elibereaza memoria alocata return 0; } Titlul: Răspuns: problema .campion Scris de: Plesa Mihail Iulian din Februarie 17, 2013, 13:24:31 Incearca sa declari vectorii mari in afara mainului (pe heap ai mai mult decat pe stiva). Asa ar trebui sa nu mai ai KBS-uri. BTW: "renul despre care discutam este format dintr-o locomotiva si N vagoane"...made my day. A functionat acum...multumesc mult ! |