Probabilmente è un errore di distrazione, ma hai scritto
poi puoi semplicemente scrivere
Adesso, per ragionare sull'ultimo punto, riscriviamo la funzione che ti ho appena scritto in questo modo
se vuoi contare le quante volte appare ad ogni riga devi modificarla per
cin >> m[dim_r][dim_c];
invece di cin >> m[i][j];
e questo ovviamente non ti fa tornare i conti. Per il resto ci eri andato molto vicino, la funzione cerca_elemento è più pulita se restituisce il valore calcolato
C++:
int cerca_elemento(matrice m, int dim_r, int dim_c, int elemento){
int quanto = 0;
for(int i = 0; i < dim_r; i ++) // non necessariamente 10
for(int j = 0; j < dim_c; j++) // non necessariamente 10
if(elemento == m[i][j]) quanto++;
return quanto;
}
int quanto = cerca_elemento(m, dim_r, dim_c, elemento);
e stampare quanto senza sommare 1 (non è un indice).Adesso, per ragionare sull'ultimo punto, riscriviamo la funzione che ti ho appena scritto in questo modo
C++:
void cerca_elemento(matrice m, int dim_r, int dim_c, int elemento){
int quanto = 0;
for(int i = 0; i < dim_r; i ++) {
for(int j = 0; j < dim_c; j++) {
if(elemento == m[i][j]) quanto++;
}
}
cout << "Il numero "<< elemento << " è stato trovato " << quanto << " volte" << endl;
}
- azzerare quanto ogni volta che inizia il conteggio per la riga attuale; e
- spostare la cout in modo che ci sia una stampa ad ogni riga (appena dopo aver finito il conteggio).