Răspuns :
Răspuns:
Problema din codul tău este că ai început indexarea de la 1 în loc de la 0 când ai parcurs șirul pentru a număra aparițiile fiecărui element. Modifică aceste bucle for astfel încât să înceapă de la 0. În plus, trebuie să ai grijă la dimensiunea array-ului `ap`, trebuie să fie cel puțin 501 pentru a putea acoperi toate valorile posibile (de la 0 la 500). Mai jos este codul modificat:
```cpp
#include <iostream>
using namespace std;
int main() {
int n, v[10000];
cin >> n;
for (int i = 0; i < n; i++) {
cin >> v[i];
}
int ap[501]; // Dimensiunea modificata
for (int i = 0; i < 501; i++) { // Modificare aici
ap[i] = 0;
}
for(int i = 0; i < n; i++) { // Modificare aici
ap[v[i]]++;
}
int valMax = 0;
for(int i = 0; i <= 500; i++) {
if(ap[valMax] < ap[i] && ap[i] <= n) {
valMax = i;
} else if (ap[valMax] == ap[i] && ap[i] <= n) {
valMax = i;
}
}
cout << valMax << endl;
return 0;
}
```
Aceste modificări ar trebui să corecteze problema și să permită programului să ruleze corect.
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Nu ezitați să ne contactați pentru orice întrebare sau dacă aveți nevoie de asistență suplimentară. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!