Привет, если у меня есть следующая функция:
#define SIZE 100
double a[SIZE];
double b[SIZE];
double a_function(int index1, int index2)
{
switch(index1)
{
case 1:
return a[1]*a[2]*a[5]*a[3];
case 2:
return a[6]*cos(a[77])*exp(a[95]);
// .............. MUCH MORE CASES
// ALWAYS USING ONLY VALUES OF ARRAY a
case 100:
return exp(a[20])*sin(a[21]);
}
}
Я хочу добиться следующего: index2
находится в диапазоне от 0 до SIZE-1
, а затем я хочу «заменять» каждые a[ index2 ]
используя b[ index2 ]
в КАЖДОМ случае, не изменяя конструкцию switch / case.Кроме того, a и b нельзя изменить, поэтому они доступны только для чтения!
Краткий пример этого:
a_function(2, index2)
для index2! = {6, 77, 95} -> return a[6]*cos(a[77])*exp(a[95]);
a_function(2, 6)
-> возвращает b[6]*cos(a[77])*exp(a[95]);
Есть идеи, как это сделать?Возможно, с помощью какой-нибудь вспомогательной функции или с помощью «шаблонов»?Большое спасибо заранее!