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:
codice:
#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);;
}
Grazie mille a tutti