Confermo che il for non c'entra nulla ... non si cerca un elemento se hai l'indice. E l'indice è in base 0, quindi è ovvio che se con 1 intendi il primo devi sottrarre 1.

Ma poi perché, più semplicemente, non scrivi

vett[elem-1]=num;