Ciao a tutti ragazzi, ho un dubbio riguardo ad un programma in linguaggio C.
Mi spiego meglio: io ho due vettori interi che possono contenere n elementi. Eseguo due cicli, ognuno che valorizzerà il vettore1 e il vettore2, dopodiché, chiamo una funzione a cui passo v1, v2 e v3. Dentro alla funzione, v3 viene valorizzato con la somma di v1 + v2. Dopodiché ritorno v3 al main.
La domanda è questa: ho notato che se io scrivo v3 = somma_vettori(v1, v2, v3); avrò che nel vettore 3 ci sono, effettivamente le somme di v1 e 2, ma anche se scrivo semplicemente somma_vettori(v1, v2, v3); mi ritorna il dato. Ho provato a guardare sui libri di testo e anche sulle video lezioni, ma non riesco a capire quale delle due sintassi è formalmente è corretta, sebbene entrambe funzionino.
Vi riepilogo il mio programmino:
Grazie mille a tutticodice:#include <stdio.h> #include <stdlib.h> #define n 1 int main() { int i; int v1[n], v2[n], v3[n]; for (i=0; i<=n-1; i++){ printf("V1 - INS. VAL. POS. %d: " , i); scanf("%d", &v1[i]); } for (i=0; i<=n-1; i++){ printf("V2 - INS. VAL. POS. %d: ", i); scanf("%d", &v2[i]); } somma_vettori(v1, v2, v3); for (i=0; i<=n-1; i++){ printf("V3 - POS. %d VAL. %d\n", i+1, v3[i]); } } int somma_vettori(int v1[n], int v2[n], int v3[n]) { //DEFINISCO LA VARIABILE CHE UTILIZZERO' PER SCORRERE I VETTORI v1 E v2 int i; printf("ECCO I VALORI CHE HAI INSERITO...\n"); for (i=0; i<=n-1; i++){ printf("V1 - POS. %d VAL. %d\n", i, v1[i]); } for (i=0; i<=n-1; i++){ printf("V2 - POS. %d VAL. %d\n", i, v2[i]); } //FACCIO LA SOMMA TRA I DUE VETTORI for (i=0; i<=n-1; i++) { v3[i] = v1[i] + v2[i]; } return (v3);; }![]()

Rispondi quotando
