Per quanto ne sappia, scrivere
a*=2
equivale a scrivere
a=a*2
ovvero a moltiplicare per due il "vecchio" valore di a.
E allora perché se esegue questo codice:
ottengocodice:#include<stdio.h> int main(){ int vet[]={1,2,3,4,5,6}; int i; int p=1; for(i=1;i<6;i++){ p*=vet[i]/2; printf("%d ",p);} return 0; }
1 1 2 4 12
mentre sostituendo
p=p*vet[i]/2 al posto di p*=vet[i]/2
ottengo
1 1 2 5 15
?