怎么选取数组的前n项参与计算

如何选取数组的前n项参与计算
C/C++ code

for(i=0;i<300;i++)
{
         x=valuex[i];
         y=valuey[i];

    A[i][0]=x+y;
    A[i][1]=x*x+3*y;
    A[i][2]=x+2*y*x;
    ……
    A[i][99]=x/2+20*y;
}


for循环里有100个多项式,但我想在计算的时候多项式的个数由外界输入,比如只取前60项计算,怎么实现比较简单,因为要循环执行300次,如果每算一项都判断这个多项式是否在前60项,会降低程序的执行效率,请大家指点。

------解决方案--------------------
使用函数指针数组,数组中的元素为一个函数指针,分别指向函数fun00,fun01,...,fun99.
C/C++ code
#include <stdio.h>
double A[300][100];
double valuex[300];
double valuey[300];
int i;
double fun00(double x,double y) {return x  +   y  ;};
double fun01(double x,double y) {return x*x+ 3*y  ;};
double fun02(double x,double y) {return x  + 2*y*x;};
//...  fun03(double x,double y) {return ...+...   ;};
//...
//...  fun98(double x,double y) {return ...+...   ;};
double fun99(double x,double y) {return x/2+20*y  ;};
double (*funNN[100])(double,double)={
    fun00,
    fun01,
    fun02,
//  fun03,
//  ...
//  fun98,
    fun99,
};
int main() {
    double x,y;
    int f,FN;

    for (i=0;i<300;i++) {
        valuex[i]=(double)i;
        valuey[i]=(double)i;
    }
    FN=3;
    for (i=0;i<300;i++) {
         x=valuex[i];
         y=valuey[i];
         for (f=0;f<FN;f++) A[i][f]=funNN[f](x,y);
    }
    for (i=0;i<3;i++) {
        for (f=0;f<FN;f++) printf("%lg ",A[i][f]);
        printf("\n");
    }
    return 0;
}
//0 0 0
//2 4 3
//4 10 10