#define n (10)
int a[n];
for (size_t i=n; i>0; ) {
--i;
a[i] = ...;
}

逆順ならいつもこうしてるわ負の値などそもそも要らんのだよ
ループの終わりに固定されるforの第3項の存在は忘れたほうがいい