Domanda Linguaggio in C

Cristian2002

Utente Iron
19 Settembre 2021
1
1
0
7
Salve, sono un ragazzo di quarta superiore, la nostra professoressa di informatica ci ha dato uno esercizio ma mi trovo bloccato.
L'esercizio mi chiedeva

Memorizzare in un vettore "A" "N" numeri interi letti da tastiera. Calcolare la media aritmetica e copiare in un vettore "B" solo gli elementi di "A" superiori alla media. Visualizzare i contenuti dei due vettori su righe separate, ogni valore è separato dal successivo da due trattini.
 

Allegati

  • 1632063429542.png
    1632063429542.png
    25.7 KB · Visualizzazioni: 27
Un errore lo si nota facilmente nella funzione mediaCopia in cui vai a copiare gli elementi del vettore A maggiori della media nel vettore B, dato che usi la stessa variabile per iterarti su tutti e due gli array.

Quello che dovresti fare è usare due variabili distinte, una che percorre tutto il vettore A, ed un'altra che specifica l'ultimo valore del vettore B inizializzato, nel modo in cui lo hai scritto tu, nel caso il valore contenuto in A[i] sia inferiore alla media lascierai l'attuale slot B[i] senza una corretta inizializzazione.

In più, in ogni possibile scenario avrai sempre che le dimensioni del vettore B dovranno essere inferiori a quelle del vettore A, quindi in qualche modo dovrai salvarti il valore della variabile che hai utilizzato come iteratore sul vettore B così sai quanti elementi sono stati inizializzati, lascio a te immaginare come ;).

Poi vedo ancora qualcosina che non mi convince del tutto, ma nel caso sarai tu a dirci cosa non ti quadrerà.
 
  • Mi piace
Reazioni: MØNTI