为了使我们计算物理项目中的一个程序(不是我写的)更加动态,我一直在努力实现C语言中非常简单的一件事情:逐个元素比较两个不同的数组并在if条件语句中进行比较。
#include <math.h>
#include <stdio.h>
#include "header.h"
const int nParam = 10;
double a[nParam], a_tmp[nParam];
double values[10000];
double FitParam(double x){
int xindex;
double value;
xindex=(int) x;
if (a_tmp[1]==a[1] && a_tmp[2]==a[2] && a_tmp[3]==a[3] && a_tmp[4]==a[4]){
value=values[xindex];
return(value);
}
// code continues... (very long subroutine and there is recursion for
// the subroutine so this if statement above is very important).
数组a[]
在每次运行程序时具有不同数量的有效元素;例如,现在我们仅使用此子程序处理[1]
到[4]
元素。但是,在其他情况下,我们将希望有更少或更多的元素,例如,分别为最多3个元素或最多5个元素。
因此,我希望能够重写上面的if语句,使其动态化......换句话说,如果考虑N个元素,则它将执行:
if (a_tmp[1]==a[1] && ... && a_tmp[N]==a[N]){}
因此,当我们关注的元素数量N改变时,这个if条件应该随之变化(N在文件头中定义为#define,我刚刚命名为header.h)。
非常感谢您对这项任务的支持。谢谢。
memcmp(&a_tmp[1], &a[1], 4 * sizeof a[1]);
- M.M