#4238
NrZero
C++
Scrieţi definiția completă a subprogramului C++ cu antetul:
int NrZero(int a[], int n)
care are doi parametri:
a
, prin care primeşte un tablou unidimensional care memorează numai cifre, astfel: cifrele impare se află la începutul vectorului ordonate descrescător, iar cifrele pare se găsesc la finalul vectorului, ordonate crescătorn
, numărul efectiv de elemente ale tablouluiSubprogramul returnează numărul de valori egale cu 0
din vectorul a
.
Folclorul informatic
Problema | NrZero | Operații I/O |
![]() nrzero.in /nrzero.out
|
---|---|---|---|
Limita timp | 0.1 secunde | Limita memorie |
Total: 128 MB
/
Stivă 64 MB
|
Id soluție | #53118579 | Utilizator | |
Fișier | nrzero.cpp | Dimensiune | 565 B |
Data încărcării | 18 Octombrie 2024, 08:57 | Scor / rezultat | Eroare de compilare |
nrzero.cpp: In function 'int NrZero(int*, int)': nrzero.cpp:8:5: error: declaration of 'int n' shadows a parameter int n, a[500003]; ^ nrzero.cpp:8:16: error: declaration of 'int a [500003]' shadows a parameter int n, a[500003]; ^ nrzero.cpp:11:1: error: a function-definition is not allowed here before '{' token { ^ nrzero.cpp:4:34: warning: unused variable 'st' [-Wunused-variable] int NrZero(int a[], int n) { int st, dr, mid, p, q; /// cauta cea mai din stanga pozitie p cu a[p] = 0 p = -1; st = 1; dr = n; while (st <= dr) { mid = (st + dr) / 2; if (a[mid] % 2 == 1) st = mid + 1; else if (a[mid] > 0) dr = mid - 1; else /// a[mid] = 0 { p = mid; dr = mid - 1; } } if (p == -1) return 0; /// cauta cea mai din dreapta pozitie q cu a[q] = 0 q = -1; st = 1; dr = n; while (st <= dr) { mid = (st + dr) / 2; if (a[mid] % 2 == 1) st = mid + 1; else if (a[mid] > 0) dr = mid - 1; else /// a[mid] = 0 { q = mid; st = mid + 1; } } return q - p + 1; } ^ nrzero.cpp:4:38: warning: unused variable 'dr' [-Wunused-variable] int NrZero(int a[], int n) { int st, dr, mid, p, q; /// cauta cea mai din stanga pozitie p cu a[p] = 0 p = -1; st = 1; dr = n; while (st <= dr) { mid = (st + dr) / 2; if (a[mid] % 2 == 1) st = mid + 1; else if (a[mid] > 0) dr = mid - 1; else /// a[mid] = 0 { p = mid; dr = mid - 1; } } if (p == -1) return 0; /// cauta cea mai din dreapta pozitie q cu a[q] = 0 q = -1; st = 1; dr = n; while (st <= dr) { mid = (st + dr) / 2; if (a[mid] % 2 == 1) st = mid + 1; else if (a[mid] > 0) dr = mid - 1; else /// a[mid] = 0 { q = mid; st = mid + 1; } } return q - p + 1; } ^ nrzero.cpp:4:42: warning: unused variable 'mid' [-Wunused-variable] int NrZero(int a[], int n) { int st, dr, mid, p, q; /// cauta cea mai din stanga pozitie p cu a[p] = 0 p = -1; st = 1; dr = n; while (st <= dr) { mid = (st + dr) / 2; if (a[mid] % 2 == 1) st = mid + 1; else if (a[mid] > 0) dr = mid - 1; else /// a[mid] = 0 { p = mid; dr = mid - 1; } } if (p == -1) return 0; /// cauta cea mai din dreapta pozitie q cu a[q] = 0 q = -1; st = 1; dr = n; while (st <= dr) { mid = (st + dr) / 2; if (a[mid] % 2 == 1) st = mid + 1; else if (a[mid] > 0) dr = mid - 1; else /// a[mid] = 0 { q = mid; st = mid + 1; } } return q - p + 1; } ^ nrzero.cpp:4:47: warning: unused variable 'p' [-Wunused-variable] int NrZero(int a[], int n) { int st, dr, mid, p, q; /// cauta cea mai din stanga pozitie p cu a[p] = 0 p = -1; st = 1; dr = n; while (st <= dr) { mid = (st + dr) / 2; if (a[mid] % 2 == 1) st = mid + 1; else if (a[mid] > 0) dr = mid - 1; else /// a[mid] = 0 { p = mid; dr = mid - 1; } } if (p == -1) return 0; /// cauta cea mai din dreapta pozitie q cu a[q] = 0 q = -1; st = 1; dr = n; while (st <= dr) { mid = (st + dr) / 2; if (a[mid] % 2 == 1) st = mid + 1; else if (a[mid] > 0) dr = mid - 1; else /// a[mid] = 0 { q = mid; st = mid + 1; } } return q - p + 1; } ^ nrzero.cpp:4:50: warning: unused variable 'q' [-Wunused-variable] int NrZero(int a[], int n) { int st, dr, mid, p, q; /// cauta cea mai din stanga pozitie p cu a[p] = 0 p = -1; st = 1; dr = n; while (st <= dr) { mid = (st + dr) / 2; if (a[mid] % 2 == 1) st = mid + 1; else if (a[mid] > 0) dr = mid - 1; else /// a[mid] = 0 { p = mid; dr = mid - 1; } } if (p == -1) return 0; /// cauta cea mai din dreapta pozitie q cu a[q] = 0 q = -1; st = 1; dr = n; while (st <= dr) { mid = (st + dr) / 2; if (a[mid] % 2 == 1) st = mid + 1; else if (a[mid] > 0) dr = mid - 1; else /// a[mid] = 0 { q = mid; st = mid + 1; } } return q - p + 1; } ^ nrzero.cpp:7:6: warning: unused variable 's' [-Wunused-variable] char s[500003]; ^ nrzero.cpp:8:5: warning: unused variable 'n' [-Wunused-variable] int n, a[500003]; ^ nrzero.cpp:8:8: warning: unused variable 'a' [-Wunused-variable] int n, a[500003]; ^ nrzero.cpp:39:1: error: expected '}' at end of input } ^ nrzero.cpp:39:1: warning: no return statement in function returning non-void [-Wreturn-type]
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema NrZero face parte din a doua categorie. Pentru aceste probleme se folosește un program suport, furnizat de propunătorul problemei. 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ă.