- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
为了我的编程作业,我必须编写一个计算函数积分的程序
main.c 文件:
#include <stdio.h>
#include <math.h>
#include "integrand.h"
#define M 64
#define N 64
#define dif 0.01
#define max 8
float (*pf)(float,float);
void integrate(float pf(float x,float y)){
int i,j,k=0,l=1;
float a,b,c,d,dx,dy,dA,x[i],y[j],r=0,r_old;
printf("Enter the integration bounds a,b,c,d separated by commas: \n\n");scanf("%f,%f,%f,%f",&a,&b,&c,&d);
do{
r_old = r;
dx = (b - a)/(l*M);
dy = (d - c)/(l*N);
dA = dx * dy;
for(i=0;i<(l*M)-1;i++){
x[i] = a + (i + 0.5)*dx;
}
for(j=0;j<(l*N)-1;j++){
y[j] = c + (j + 0.5)*dy;
}
for(i=0;i<(l*M)-1;i++){
for(j=0;j<(l*N)-1;j++){
r+=(((*pf)(x[i],y[j]))*dA);
}}
k++;
l*=2;
}while(k<max || abs(r-r_old)<=dif*abs(r));
printf("Integral = %f",r);
return;
}
int main(void)
{
float x,y;
int q;
printf("Choose an integrand:\n\n (1) f_1(x,y) = x^3 + 3y^2*x + 7x^2*y + 10 \n\n (2) f_2(x,y) = cos(0.1*x^5 + y^2) - sin(y*x)^5 + log(|x-y|+1) + 2 \n\n (3) f_3(x,y) = sin(x^2+y^2) + exp(-50*(x^2+y^2))\n\n (4) f_4(x,y) = f_3(f_1(x,y),f_2(x,y))\n\n (5) QUIT \n\n");
do{
scanf("%d",&q);
switch(q){
case 1:
pf = f_1;
integrate((&pf)(x,y));
break;
case 2:
pf = f_2;
integrate((&pf)(x,y));
break;
case 3:
pf = f_3;
integrate((&pf)(x,y));
break;
case 4:
pf = &f_4;
integrate((&pf)(x,y));
break;
}}while(q!=5);
return 0;
}
积分函数.c文件:
#include <math.h>
float f_1(float x, float y){return (pow(x,3) + 3*pow(y,2)*x + 7*pow(x,2)*y + 10);}
float f_2(float x, float y){return (cos(0.1*pow(x,5)+pow(y,2)) - pow(sin(y*x),5) + log(fabs(x-y)+1) + 2);}
float f_3(float x, float y){return (sin(pow(x,2)+pow(y,2)) + pow(M_E,-50*(pow(x,2)+pow(y,2))));}
float f_4(float x, float y){return (f_3(f_1(x,y),f_2(x,y)));}
积分函数.h文件:
#ifndef INTEGRAND_H
#define INTEGRAND_H
extern float f_1(float x, float y);
extern float f_2(float x, float y);
extern float f_3(float x, float y);
extern float f_4(float x, float y);
#endif // INTEGRAND_H
标题中的错误在所有四种情况下都出现在这部分:
integrate((&pf)(x,y));
我无法弄清楚问题到底出在哪里,我试过将 & 换成 * 或完全删除它,但这只会导致错误,指出参数类型与“集成”的参数 1 不兼容
最佳答案
pf
是一个函数指针,你需要将它传递给 integrate
而不需要任何额外的参数。由于您在所有四个分支中以相同的方式调用函数,因此将调用移至 switch
之外的 integrate
:
do{
scanf("%d", &q);
switch(q){
case 1: pf = f_1; break;
case 2: pf = f_2; break;
case 3: pf = f_3; break;
case 4: pf = f_4; break;
default: pf = NULL; break;
}
if (pf) {
integrate(pf);
}
} while (q != 5);
这种 switch
的使用模式也可以用数组代替。
关于C 错误 : "Called error is not a function or function pointer",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48093995/
reqwest v0.9 将 serde v1.0 作为依赖项,因此实现 converting serde_json errors into reqwest error . 在我的代码中,我使用 se
我有这个代码: let file = FileStorage { // ... }; file.write("Test", bytes.as_ref()) .map_err(|e| Mu
我只是尝试用angular-cli创建一个新项目,然后运行服务器,但是它停止并显示一条有趣的消息:Error: No errors。 我以这种方式更新了(希望有帮助):npm uninstall -g
我从我的 javascript 发送交易 Metamask 打开传输对话框 我确定 i get an error message in metamask (inpage.js:1 MetaMask -
这个问题在这里已经有了答案: How do you define custom `Error` types in Rust? (3 个答案) How to get a reference to a
我想知道两者之间有什么大的区别 if let error = error{} vs if error != nil?或者只是人们的不同之处,比如他们如何用代码表达自己? 例如,如果我使用这段代码: u
当我尝试发送超过 50KB 的图像时,我在 Blazor 服务器应用程序上收到以下错误消息 Error: Connection disconnected with error 'Error: Serv
我有一个error-page指令,它将所有异常重定向到错误显示页面 我的web.xml: [...] java.lang.Exception /vi
我有这样的对象: address: { "phone" : 888, "value" : 12 } 在 WHERE 中我需要通过 address.value 查找对象,但是在 SQL 中有函数
每次我尝试编译我的代码时,我都会遇到大量错误。这不是我的代码的问题,因为它在另一台计算机上工作得很好。我尝试重新安装和修复,但这没有帮助。这是整个错误消息: 1>------ Build starte
在我的代码的类部分,如果我写一个错误,则在不应该的情况下,将有几行报告为错误。我将'| error'放在可以从错误中恢复的良好/安全位置,但是我认为它没有使用它。也许它试图在某个地方恢复中间表情? 有
我遇到了 csv 输入文件整体读取故障的问题,我可以通过在 read_csv 函数中添加 "error_bad_lines=False" 来删除这些问题来解决这个问题。 但是我需要报告这些造成问题的文
在 Spring 中,验证后我们在 controller 中得到一个 BindingResult 对象。 很简单,如果我收到验证错误,我想重新显示我的表单,并在每个受影响的字段上方显示错误消息。 因此
我不知道出了什么问题,因为我用 Java 编程了大约一年,从来没有遇到过这个错误。在一分钟前在 Eclipse 中编译和运行工作,现在我得到这个错误: #A fatal error has been
SELECT to_char(messages. TIME, 'YYYY/MM/DD') AS FullDate, to_char(messages. TIME, 'MM/DD
我收到这些错误: AnonymousPath\Anonymized.vb : error BC30037: Character is not valid. AnonymousPath\Anonymiz
我刚刚安装了 gridengine 并在执行 qstat 时出现错误: error: commlib error: got select error (Connection refused) erro
嗨,我正在学习 PHP,我从 CRUD 系统开始,我在 Windows 上安装了 WAMP 服务器,当我运行它时,我收到以下错误消息。 SCREAM: Error suppression ignore
我刚刚开始一个新项目,我正在学习核心数据教程,可以找到:https://www.youtube.com/watch?v=zZJpsszfTHM 我似乎无法弄清楚为什么会抛出此错误。我有一个名为“Exp
当我使用 Jenkins 运行新构建时,出现以下错误: "FilePathY\XXX.cpp : fatal error C1853: 'FilePathZ\XXX.pch' precompiled
我是一名优秀的程序员,十分优秀!