首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-06-29 
如何选取数组的前n项参与计算C/C++ codefor(i0i300i++){xvaluex[i]yvaluey[i]A[i][0]x+yA[i][1]

如何选取数组的前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 

热点排行