Po pierwsze to w pętli w linii 15 wczytujesz elementy indeksując od 1, a w linii 21 indeksujesz od 0.
Po drugie w pętli 28 przypisujesz zmiennej w wartość a[i], a przecież a[i] na tym etapie jest równe 0
Po trzecie w nie jest niczym zainicjalizowane. Ja bym dał mu chociaz wartość a[1]
Poprawiony kod wygląda jakoś tak:
w = a[1];
for (i=2; i<=n; i++)
{
while (a[i]!=0)
{
if (w>a[i]) w-=a[i];
else a[i]-=w;
}
}