#922
Se dau coordonatele carteziene a n puncte în plan. Să se determine distanța maximă dintre un punct dat și originea sistemului de coordonate și numărul de puncte situate la acea distanță față de origine.
| Problema | Puncte | Operații I/O |
tastatură/ecran
|
|---|---|---|---|
| Limita timp | 0.1 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
| Id soluție | #64689479 | Utilizator | |
| Fișier | puncte.cpp | Dimensiune | 5.61 KB |
| Data încărcării | 23 Mai 2026, 12:34 | Scor/rezultat | Eroare de compilare |
puncte.cpp:58:745: error: stray ‘#’ in program 58 | Use code with caution.Ce s-a schimbat și de ce?fixed și setprecision(3): Forțează programul să afișeze exact 3 zecimale (ex: 5.000 în loc de 5).Fără text la citire: Am șters cout<<"nr de puncte = "; deoarece evaluatorul automat introduce direct datele și verifică strict ieșirea.Logica cu pătrate: Comparând x*x + y*y (care sunt numere întregi), suntem 100% siguri că verificarea == funcționează corect. Două puncte precum (1, 2) și (2, 1) vor avea ambele pătratul 5, deci vor fi numărate corect.Dacă vrei, putem modifica codul pentru a nu mai folosi deloc vectorul c, reducând memoria la minimum deoarece punctele pot fi procesate pe loc. Te interesează această optimizare pentru memorie?AI responses may include mistakes. Learn moreYou said: #include <iostream> | ^ puncte.cpp:94:429: warning: multi-character character constant [-Wmultichar] 94 | }Codul tău a corectat tipurile de date pentru maxi și lorigine, însă conține trei erori majore care vor bloca compilarea sau vor genera rezultate greșite pe platforma de evaluare.Iată problemele din această variantă:1. Eroare de sintaxă (Litera a rătăcită)La linia 32 ai scris a else if(maxi == lorigine). Acea literă a va genera o eroare de compilare imediată (error: 'a' does not name a type sau error: expected ';' before 'else').2. Funcția ta returnează în continuare intDeși ai declarat double lorigine în main și double ipotenuza în funcție, antetul funcției este încă int lungime_orig(...).Din această cauză, valoarea cu zecimale este convertită forțat în întreg (trunchiată) atunci când funcția face return.3. Mesajul text și formatul de afișareMesajul cout<<"nr de puncte = "; trebuie eliminat pentru a nu induce în eroare evaluatorul automat.Rezultatul trebuie afișat cu formatare fixă de zecimale (folosind #include <iomanip>), altfel numerele întregi (cum ar fi distanța 5) se vor afișa ca 5, nu ca 5.000 cum cer testele.Codul tău corectat (Păstrând structura ta exactă)Iată varianta ta de cod, în care am reparat tipul returnat de funcție, am șters litera a rătăcită, am eliminat textul de citire și am adăugat formatarea pentru zecimale:cpp#include <iostream> | ^~~~~~ puncte.cpp:94:436: error: too many decimal points in number 94 | }Codul tău a corectat tipurile de date pentru maxi și lorigine, însă conține trei erori majore care vor bloca compilarea sau vor genera rezultate greșite pe platforma de evaluare.Iată problemele din această variantă:1. Eroare de sintaxă (Litera a rătăcită)La linia 32 ai scris a else if(maxi == lorigine). Acea literă a va genera o eroare de compilare imediată (error: 'a' does not name a type sau error: expected ';' before 'else').2. Funcția ta returnează în continuare intDeși ai declarat double lorigine în main și double ipotenuza în funcție, antetul funcției este încă int lungime_orig(...).Din această cauză, valoarea cu zecimale este convertită forțat în întreg (trunchiată) atunci când funcția face return.3. Mesajul text și formatul de afișareMesajul cout<<"nr de puncte = "; trebuie eliminat pentru a nu induce în eroare evaluatorul automat.Rezultatul trebuie afișat cu formatare fixă de zecimale (folosind #include <iomanip>), altfel numerele întregi (cum ar fi distanța 5) se vor afișa ca 5, nu ca 5.000 cum cer testele.Codul tău corectat (Păstrând structura ta exactă)Iată varianta ta de cod, în care am reparat tipul returnat de funcție, am șters litera a rătăcită, am eliminat textul de citire și am adăugat formatarea pentru zecimale:cpp#include <iostream> | ^~~ puncte.cpp:94:718: error: too many decimal points in number 94 | }Codul tău a corectat tipurile de date pentru maxi și lorigine, însă conține trei erori majore care vor bloca compilarea sau vor genera rezultate greșite pe platforma de evaluare.Iată problemele din această variantă:1. Eroare de sintaxă (Litera a rătăcită)La linia 32 ai scris a else if(maxi == lorigine). Acea literă a va genera o eroare de compilare imediată (error: 'a' does not name a type sau error: expected ';' before 'else').2. Funcția ta returnează în continuare intDeși ai declarat double lorigine în main și double ipotenuza în funcție, antetul funcției este încă int lungime_orig(...).Din această cauză, valoarea cu zecimale este convertită forțat în întreg (trunchiată) atunci când funcția face return.3. Mesajul text și formatul de afișareMesajul cout<<"nr de puncte = "; trebuie eliminat pentru a nu induce în eroare evaluatorul automat.Rezultatul trebuie afișat cu formatare fixă de zecimale (folosind #include <iomanip>), altfel numerele întregi (cum ar fi distanța 5) se vor afișa ca 5, nu ca 5.000 cum cer testele.Codul tău corectat (Păstrând structura ta exactă)Iată varianta ta de cod, în care am reparat tipul returnat de funcție, am șters litera a rătăcită, am eliminat textul de citire și am adăugat formatarea pentru zecimale:cpp#include <iostream> | ^~~ puncte.cpp:94:922: error: stray ‘#’ in program 94 | }Codul tău a corectat tipurile de date pentru maxi și lorigine, însă conține trei erori majore care vor bloca compilarea sau vor genera rezultate greșite pe platforma de evaluare.Iată problemele din această variantă:1. Eroare de sintaxă (Litera a rătăcită)La linia 32 ai scris a else if(maxi == lorigine). Acea literă a va genera o eroare de compilare imediată (error: 'a' does not name a type sau error: expected ';' before 'else').2. Funcția ta returnează în continuare intDeși ai declarat double lorigine în main și double ipotenuza în funcție, antetul funcției este încă int lungime_orig(...).Din această cauză, valoarea cu zecimale este convertită forțat în întreg (trunchiată) atunci când funcția face return.3. Mesajul text și formatul de afișareMesajul cout<<"nr de puncte = "; trebuie eliminat pentru a nu induce în eroare evaluatorul automat.Rezultatul trebuie afișat cu formatare fixă de zecimale (folosind #include <iomanip>), altfel numerele întregi (cum ar fi distanța 5) se vor afișa ca 5, nu ca 5.000 cum cer testele.Codul tău corectat (Păstrând structura ta exactă)Iată varianta ta de cod, în care am reparat tipul returnat de funcție, am șters litera a rătăcită, am eliminat textul de citire și am adăugat formatarea pentru zecimale:cpp#include <iostream> | ^ puncte.cpp:94:1258: error: stray ‘#’ in program 94 | }Codul tău a corectat tipurile de date pentru maxi și lorigine, însă conține trei erori majore care vor bloca compilarea sau vor genera rezultate greșite pe platforma de evaluare.Iată problemele din această variantă:1. Eroare de sintaxă (Litera a rătăcită)La linia 32 ai scris a else if(maxi == lorigine). Acea literă a va genera o eroare de compilare imediată (error: 'a' does not name a type sau error: expected ';' before 'else').2. Funcția ta returnează în continuare intDeși ai declarat double lorigine în main și double ipotenuza în funcție, antetul funcției este încă int lungime_orig(...).Din această cauză, valoarea cu zecimale este convertită forțat în întreg (trunchiată) atunci când funcția face return.3. Mesajul text și formatul de afișareMesajul cout<<"nr de puncte = "; trebuie eliminat pentru a nu induce în eroare evaluatorul automat.Rezultatul trebuie afișat cu formatare fixă de zecimale (folosind #include <iomanip>), altfel numerele întregi (cum ar fi distanța 5) se vor afișa ca 5, nu ca 5.000 cum cer testele.Codul tău corectat (Păstrând structura ta exactă)Iată varianta ta de cod, în care am reparat tipul returnat de funcție, am șters litera a rătăcită, am eliminat textul de citire și am adăugat formatarea pentru zecimale:cpp#include <iostream> | ^ puncte.cpp:58:1: error: ‘Use’ does not name a type 58 | Use code with caution.Ce s-a schimbat și de ce?fixed și setprecision(3): Forțează programul să afișeze exact 3 zecimale (ex: 5.000 în loc de 5).Fără text la citire: Am șters cout<<"nr de puncte = "; deoarece evaluatorul automat introduce direct datele și verifică strict ieșirea.Logica cu pătrate: Comparând x*x + y*y (care sunt numere întregi), suntem 100% siguri că verificarea == funcționează corect. Două puncte precum (1, 2) și (2, 1) vor avea ambele pătratul 5, deci vor fi numărate corect.Dacă vrei, putem modifica codul pentru a nu mai folosi deloc vectorul c, reducând memoria la minimum deoarece punctele pot fi procesate pe loc. Te interesează această optimizare pentru memorie?AI responses may include mistakes. Learn moreYou said: #include <iostream> | ^~~ puncte.cpp:58:200: error: ‘deoarece’ does not name a type 58 | Use code with caution.Ce s-a schimbat și de ce?fixed și setprecision(3): Forțează programul să afișeze exact 3 zecimale (ex: 5.000 în loc de 5).Fără text la citire: Am șters cout<<"nr de puncte = "; deoarece evaluatorul automat introduce direct datele și verifică strict ieșirea.Logica cu pătrate: Comparând x*x + y*y (care sunt numere întregi), suntem 100% siguri că verificarea == funcționează corect. Două puncte precum (1, 2) și (2, 1) vor avea ambele pătratul 5, deci vor fi numărate corect.Dacă vrei, putem modifica codul pentru a nu mai folosi deloc vectorul c, reducând memoria la minimum deoarece punctele pot fi procesate pe loc. Te interesează această optimizare pentru memorie?AI responses may include mistakes. Learn moreYou said: #include <iostream> | ^~~~~~~~ puncte.cpp:61:8: error: redefinition of ‘struct coordonata_punct’ 61 | struct coordonata_punct | ^~~~~~~~~~~~~~~~ puncte.cpp:7:8: note: previous definition of ‘struct coordonata_punct’ 7 | struct coordonata_punct | ^~~~~~~~~~~~~~~~ puncte.cpp:73:5: error: redefinition of ‘int main()’ 73 | int main() | ^~~~ puncte.cpp:19:5: note: ‘int main()’ previously defined here 19 | int main() | ^~~~ puncte.cpp: In function ‘int main()’: puncte.cpp:89:5: error: ‘a’ was not declared in this scope 89 | a else if(maxi == lorigine) | ^ puncte.cpp: At global scope: puncte.cpp:94:2: error: ‘Codul’ does not name a type 94 | }Codul tău a corectat tipurile de date pentru maxi și lorigine, însă conține trei erori majore care vor bloca compilarea sau vor genera rezultate greșite pe platforma de evaluare.Iată problemele din această variantă:1. Eroare de sintaxă (Litera a rătăcită)La linia 32 ai scris a else if(maxi == lorigine). Acea literă a va genera o eroare de compilare imediată (error: 'a' does not name a type sau error: expected ';' before 'else').2. Funcția ta returnează în continuare intDeși ai declarat double lorigine în main și double ipotenuza în funcție, antetul funcției este încă int lungime_orig(...).Din această cauză, valoarea cu zecimale este convertită forțat în întreg (trunchiată) atunci când funcția face return.3. Mesajul text și formatul de afișareMesajul cout<<"nr de puncte = "; trebuie eliminat pentru a nu induce în eroare evaluatorul automat.Rezultatul trebuie afișat cu formatare fixă de zecimale (folosind #include <iomanip>), altfel numerele întregi (cum ar fi distanța 5) se vor afișa ca 5, nu ca 5.000 cum cer testele.Codul tău corectat (Păstrând structura ta exactă)Iată varianta ta de cod, în care am reparat tipul returnat de funcție, am șters litera a rătăcită, am eliminat textul de citire și am adăugat formatarea pentru zecimale:cpp#include <iostream> | ^~~~~ puncte.cpp:94:790: error: ‘trebuie’ does not name a type 94 | }Codul tău a corectat tipurile de date pentru maxi și lorigine, însă conține trei erori majore care vor bloca compilarea sau vor genera rezultate greșite pe platforma de evaluare.Iată problemele din această variantă:1. Eroare de sintaxă (Litera a rătăcită)La linia 32 ai scris a else if(maxi == lorigine). Acea literă a va genera o eroare de compilare imediată (error: 'a' does not name a type sau error: expected ';' before 'else').2. Funcția ta returnează în continuare intDeși ai declarat double lorigine în main și double ipotenuza în funcție, antetul funcției este încă int lungime_orig(...).Din această cauză, valoarea cu zecimale este convertită forțat în întreg (trunchiată) atunci când funcția face return.3. Mesajul text și formatul de afișareMesajul cout<<"nr de puncte = "; trebuie eliminat pentru a nu induce în eroare evaluatorul automat.Rezultatul trebuie afișat cu formatare fixă de zecimale (folosind #include <iomanip>), altfel numerele întregi (cum ar fi distanța 5) se vor afișa ca 5, nu ca 5.000 cum cer testele.Codul tău corectat (Păstrând structura ta exactă)Iată varianta ta de cod, în care am reparat tipul returnat de funcție, am șters litera a rătăcită, am eliminat textul de citire și am adăugat formatarea pentru zecimale:cpp#include <iostream> | ^~~~~~~ puncte.cpp:100:8: error: redefinition of ‘struct coordonata_punct’ 100 | struct coordonata_punct | ^~~~~~~~~~~~~~~~ puncte.cpp:7:8: note: previous definition of ‘struct coordonata_punct’ 7 | struct coordonata_punct | ^~~~~~~~~~~~~~~~ puncte.cpp:107:8: error: ambiguating new declaration of ‘double lungime_orig(int, int)’ 107 | double lungime_orig(int x, int y) | ^~~~~~~~~~~~ puncte.cpp:66:5: note: old declaration ‘int lungime_orig(int, int)’ 66 | int lungime_orig(int x, int y)//pitagora fata de x si y | ^~~~~~~~~~~~ puncte.cpp:115:5: error: redefinition of ‘int main()’ 115 | int main() | ^~~~ puncte.cpp:19:5: note: ‘int main()’ previously defined here 19 | int main() | ^~~~ puncte.cpp: In function ‘int main()’: puncte.cpp:142:60: error: expected ‘}’ at end of input 142 | cout << fixed << setprecision(3) << maxi << " " << cnt; | ^ puncte.cpp:116:1: note: to match this ‘{’ 116 | { | ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Puncte face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.