You are almost right. If you define an array in the beginning, you should be fine.
Data newdata;
Array c {100} c1-c100;
Set Old;
Do i=1 to 100 by 1;
c [i] = a*l/100 + b *(100-i)/100;
Output;
End;
Run;
Or you could have one new column and use as by variable in your analysis:
Data new;
set old;
do weight =1 to 100 by 1;
C = a * weight / 100 + b * (1-weight/100);
Output; /* this is important */
End;
Run;