Evidentemente non sono ancora riuscito a farti capire cosa succede:
codice:
if ((c=getchar())=='a'){
printf("La tua selezione e' stata a\n");
printf("inserisci il prezzo di vendita non comprensivo di spese di spedizione; \nEuro:");
getline(vettore);
k=atof(vettore);
if (k <= 50){
a=k/100;
b=a*5.25;
s=(k-b-2.5-1-5+4);
printf("La tua parte inclusiva di spese di spedizione e': %d\n", s);
}
}
system("pause");
}
int getline (char vettore[]){
int c,i=0;
while((c=getchar())!= '\n')
vettore [i++]=c;
if (c=='\n')
vettore[i++]=c;
Nella prima getchar() all'inizio tu premi 'a' e poi <invio>. La 'a' ti viene ritornata ma <invio> rimane nel buffer.
Poi entri nella tua getline(). C'è un ciclo while in cui prima di tutto, esegue una getchar() e quel <invio> rimasto nel buffer ti viene restituito. E si esce subito dal ciclo perché il carattere letto è '\n'.
Nel if successivo la condizione è true perché c contiene appunto '\n' e quindi in vettore[i] scrivi un '\n'.
Questo è quello che succede. Non è quello che volevi??? Allora cambia la gestione dell'input. Punto.