Originariamente inviato da {-_-}
questo codice dovrebbe prendere una stirnga di numeri, moltiplicare ogni numero per tre e stampare, il tutto

pechè non mi moltiplica per tre i numeri, li lascia sempre uguali?
inoltre quando passo un array, non devo passare parametri ne ritornare nulla perchè tanto il puntatore modifica direttamente l'array originale, giusto?


codice:
#include <stdio.h>

int vett[5]= {1,2,3,4,5};
int i;

void stampa();
void moltiplica();

int main(){

  stampa();

  moltiplica();
}

void stampa(){
	for (i=0; i<5; i++){
	printf("numero in posiizone % ->->-> %d \n", i, vett[i]);
	}
}

void moltiplica(){
    for (i=0; i<5; i++){
	vett[i]= (3*vett[i]);
	printf("numero in posiizone % ->->-> %d \n", i, vett[i]);
	}
}
Scusa ma perchè fare due funzioni che fanno quasi la stessa cosa ?
Io farei così:
codice:
void stampa_e_moltiplica(){
	for (i=0; i<5; i++){
           vett[i] *= 3;
	   printf("numero in posiizone % ->->-> %d \n", i, vett[i]);
	}
}
molto più ottimizzato.
Poi oltretutto, per comodità, esiste la scrittura
codice:
variabile *= valore;
al posto di
codice:
variabile = variabile * valore;
mi sembra più veloce.