Funzione somma elementi vettore in C

di il
10 risposte

Funzione somma elementi vettore in C

Ciao ragazzi, chiedo un aiuto in merito a questa consegna di programmazione in C.
Devo creare un vettore che possa restituire quanto richiesto, qualcuno gentilmente può darmi una mano?

/* Restituisce un vettore di n elementi. L’elemento di posizione i è la somma degli elementi di posizione da i a n-1 di v. Cioè detto w il vettore da restituire, w = v+v[i+1]+…+v[n-1] */

Questo è il prototipo della funzione da creare e su cui lavorare
int* SommaElementi(int* v, int n) {...}

10 Risposte

  • Re: Funzione somma elementi vettore in C

    Darti una mano come? Comincia a scrivere qualcosa e vediamo se e dove sbagli.

    Intanto ricorda di postare il codice tra tag CODE nel forum altrimenti non si capisce
  • Re: Funzione somma elementi vettore in C

    Ok, posto una bozza del codice su cui ho lavorato fin ora.
    Ma più che altro non riesco a capire la consegna cosa intende.
    int* SommaElementi(int* v, int n) {
    	int* w;
    	int dimw;
    	int k = 0;
    	
    	dimw = n - 1;
    
    	w = (int*)malloc(n*sizeof(int));
    
    	for (int i = 0; i < dimw; i++) {
    		w[k++] += w[i];
    	}
    	return w;
    }
    
  • Re: Funzione somma elementi vettore in C

    programmatore2305 ha scritto:


    /* Restituisce un vettore di n elementi. L’elemento di posizione i è la somma degli elementi di posizione da i a n-1 di v. Cioè detto w il vettore da restituire, w[ i ] = v[ i ]+v[i+1]+…+v[n-1] */
    Metti gli spazi altrimenti [ i ] viene ritenuto corsivo

    Intanto io userei la calloc in questo caso particolare

    v dove lo usi nella funzione?
  • Re: Funzione somma elementi vettore in C

    V è il vettore preso da ingresso, ad esempio v=[ 1,2,3,4,5 ], che acquisirò nel main, poi w è il vettore che mi chiede la funzione. Quindi ho pensato che v lo uso direttamente nel main. Sto sbagliando?
  • Re: Funzione somma elementi vettore in C

    programmatore2305 ha scritto:


    V è il vettore preso da ingresso, ad esempio v=[ 1,2,3,4,5 ], che acquisirò nel main, poi w è il vettore che mi chiede la funzione. Quindi ho pensato che v lo uso direttamente nel main. Sto sbagliando?
    Sì lo devi usare nella funzione

    Da v=[ 1,2,3,4,5 ] devi ottenere w=[ 15,14,12,9,5 ]

    prova
  • Re: Funzione somma elementi vettore in C

    Ahhh quindi se ho capito bene il vettore w lo ottengo facendo: [ 5+4+3+2+1 ] , [ 5+4+3+2] , [5+4+3] e cosi via...
    Ma questo procedimento come lo trasformo in codice? Intendo dire, qual è l'istruzione da svolgere?
    ps, Ti ringrazio per la dritta!
  • Re: Funzione somma elementi vettore in C

    Ma seriamente sei bloccato o non hai voglia?
    
    for (int i = 0; i < n; i++)
    	for (int j = i; j < n; j++)
    		[metti la riga che manca];
    
  • Re: Funzione somma elementi vettore in C

    Non penso di aver chiesto la luna, semplicemente non riesco a capire come svolgere un eserczio, non si tratta ne di essere bloccati e ne di non avere voglia, se non avessi riscontrato difficoltà non avrei scritto in un forum. Comunque grazie , buona giornata
  • Re: Funzione somma elementi vettore in C

    Weierstrass ha scritto:


    Ma seriamente sei bloccato o non hai voglia?
    
    for (int i = 0; i < n; i++)
    	for (int j = i; j < n; j++)
    		[metti la riga che manca];
    
    Se posso dare una mano senza spiattellare l'ultima parte (mi sembra che sia questo il modo di fare), la parola magica dovrebbe essere "accumulatore". Dovrebbe...
  • Re: Funzione somma elementi vettore in C

    antragorn ha scritto:


    Weierstrass ha scritto:


    Ma seriamente sei bloccato o non hai voglia?
    
    for (int i = 0; i < n; i++)
    	for (int j = i; j < n; j++)
    		[metti la riga che manca];
    
    Se posso dare una mano senza spiattellare l'ultima parte (mi sembra che sia questo il modo di fare), la parola magica dovrebbe essere "accumulatore". Dovrebbe...
    Ma in realtà puoi fare quello che vuoi. Tanto si offendono lo stesso se non arrivi esattamente a mostrare l'ultima riga di codice...
Devi accedere o registrarti per scrivere nel forum
10 risposte