Spiegazione esercizio su C

di il
6 risposte

Spiegazione esercizio su C

RAgazzi qualcuno mi può spiegare come si svolge questo esercizio? Non so come fare soprattutto dopo che ho fatto inserire gli elementi dell'array!

Scrivere un programma che legga da tastiera una sequenza ordinata di N
numeri interi eventualmente intervallati da alcuni 0 e li memorizzi in un
vettore. Il programma deve generare un secondo vettore che compatta i
numeri contenuti nel primo vettore. In particolare:
• ogni numero che compare ripetuto nel primo vettore, deve comparire
una sola volta nel secondo vettore
• ogni numero uguale a zero presente nel primo vettore non deve comparire nel secondo vettore.
Il programma deve visualizzare il contenuto del secondo vettore. Ad esempio, si supponga N=10 e si consideri la sequenza di numeri 1 1 3 0 4 6
0 6 8 9 inseriti da tastiera. Il programma deve visualizzare 1 3 4 6 8 9.



Grazie mille

6 Risposte

  • Re: Spiegazione esercizio su C

    Comincia a scrivere la parte che sai fare ...
  • Re: Spiegazione esercizio su C

    Bhe...intanto dopo che hai inserito gli elementi nell'array puoi fare 2 cose per continuare usare l'allocazione statica o dinamica per il secondo array, deciso questo inizi un ciclo di controllo sul primo array con un if annidato...dirti di più non avrebbe senso, se serve aiuto per l'allocazione dinamica è un altro discorso.
  • Re: Spiegazione esercizio su C

    Questa è la prima parte che ho scritto, supponendo che l'array avesse dimensione 10.


    #include <stdio.h>

    int main () {
    int a[10];
    int i,x,y;
    printf ("Inserisci i 10 numeri da introdurre nell'array \n");
    for (i=0;i<10;i++) {
    scanf ("%d", &); }
    printf ("Ora stampiamo l'array scritto ricompattato\n");
    for (i=0;i<10;i++) {

    Da qui in poi proprio non saprei come andare avanti. Ripeto che sono un neofita della programazione e quindi ho bisogno di spiegazioni molto basilari e il più semplici possibili. Grazie per il tempo che mi dedicate!
  • Re: Spiegazione esercizio su C

    Il testo dice

    Il programma deve generare un secondo vettore

    quindi devi predisporre un secondo vettore che, al massimo avrà lo stesso numero di elementi del primo.

    Quindi, impostato il ciclo for per esaminare tutti gli elementi del primo, copia elemento per elemento il valore nel secondo vettore solo se questo elemento è diverso da zero. Per il secondo vettore userai un altro indice che avanzerà solo quando sarà copiato un elemento.
  • Re: Spiegazione esercizio su C

    Grazie mille, ho risolto. volevo farvi un'altra domanda. Ho bisogno di una funzione che mi faccia la media degli elementi di un array e l'ho scritta così:

    void Media(int array[]) {
    int media;
    int somma;
    int x=0;
    int i;
    for (i=0;i<N;i++) {
    somma=x+array;
    }
    media=somma/N;
    printf ("%d", media);
    }

    Però non funziona. C'è qualche errore?
  • Re: Spiegazione esercizio su C

    Se è un'altra domanda, ci vuole un'altra discussione ... non si possono fare mille domande in una stessa discussione, non ha senso ...
Devi accedere o registrarti per scrivere nel forum
6 risposte