@
void fill(int first[], int n, int val) //素直にこう書きやがれ
{
for (int i = 0; i < n; i++) //変数が増えることを気にしないのが富豪だ
{
first[i] = val; //配列要素へのアクセスには[]があるべきなんだよ
}
} //知ってることの精一杯がポインタのそれなんだなksks



A
void fill(int *first, int *last, int val)
{
while(first < last) *first++ = val;
}

明らかに配列添字明示してる@のほうが無駄が多くて馬鹿っぽいけど