Help! C programming...
登录 | 论坛导航 -> 华新鲜事 -> 求学狮城 | 本帖共有 7 楼,分 1 页, 当前显示第 1 页 : 本帖树形列表 : 刷新 : 返回上一页
<<始页  [1]  末页>>
作者:水鸭子 (等级:14 - 天人和一,发帖:9284) 发表:2007-04-23 04:49:48  楼主  关注此帖评分:
Help! C programming...
#include <stdio.h>
#include <math.h>
#define NT double

NT f(NT x, NT y)
{
return x+y;
}

NT rkstep (NT (*func)(NT, NT), NT x, NT y[], NT h, int n, NT *err[])
{
NT k[n], y12[n], y1[n], k12[n];
k[n]=(*func)(x,y[n]);
y12[n]=y[n]+k[n]*h/2;
k12[n]=(*func)(x,y12[n]);
y1[n]=y[n]+k12[n]*h;
*err[n]=fabs(k[n]-k12[n])*h/2;
return y1[n];
}

int main ()
{
int n;
NT x, y[n], h, *err[n], result[n];
x=1;
y[0]=10;

for (n=0;n<4;n++)

{result[n]=rkstep(&f,x,y[n],h,n,&err[n]);

printf("n=%d\n", n);
printf("result=%lf\n\n", result[n]);
}


return 0;
}
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版所有回复从这里展开收起列表
作者:水鸭子 (等级:14 - 天人和一,发帖:9284) 发表:2007-04-23 04:53:26  2楼
Help! C programming...#include #include #define NT double NT f(NT x, NT y) { return x+y; } NT rkstep (NT (*func)(NT, NT), NT x, NT y[], NT h, int n, NT *err[]) { NT k[n], y12[n], y1[n], k12[n]; k[n]=(*func)(x,y[n]); y12[n]=y[n]+k[n]*h/2; k12[n]=(*func)(x,y12[n]); y1[n]=y[n]+k12[n]*h; *err[n]=fabs(k[n]-k12[n])*h/2; return y1[n]; } int main () { int n; NT x, y[n], h, *err[n], result[n]; x=1; y[0]=10; for (n=0;n (more...)
跪求解释
问题一直在这里:
result[n]=rkstep(&f,x,y[n],h,n,&err[n]);

incompatible type for argument 3 of 'rkstep'.

这个type到底哪里出问题了?
另外,我要是不要pass function f到rkstep里头,问题还是一样;
我要是不用array,问题还是一样……

已经弄了一天了,一直解决不了问题
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版所有回复从这里展开收起列表
作者:水鸭子 (等级:14 - 天人和一,发帖:9284) 发表:2007-04-25 02:42:58  3楼
Help! C programming...#include #include #define NT double NT f(NT x, NT y) { return x+y; } NT rkstep (NT (*func)(NT, NT), NT x, NT y[], NT h, int n, NT *err[]) { NT k[n], y12[n], y1[n], k12[n]; k[n]=(*func)(x,y[n]); y12[n]=y[n]+k[n]*h/2; k12[n]=(*func)(x,y12[n]); y1[n]=y[n]+k12[n]*h; *err[n]=fabs(k[n]-k12[n])*h/2; return y1[n]; } int main () { int n; NT x, y[n], h, *err[n], result[n]; x=1; y[0]=10; for (n=0;n (more...)
太感谢了!
hash眼睛真厉害……
不过我没有编完
谢谢远帆

不过我自己做出来了,两个小时以后……
不过我做的还是不完整,还要继续修改……
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版所有回复从这里展开收起列表
作者:水鸭子 (等级:14 - 天人和一,发帖:9284) 发表:2007-04-25 02:45:10  4楼
rkstep(&f,x,y,h,n,&err[n]);试试, 感觉这里面的错误不止这个,你声明数组的时候,怎么用变量来定义数组的大小 NT x, y[n], h, *err[n], result[n];??? main function NT k[n], y12[n], y1[n], k12[n]; /?? rkstep function 这编译器是怎么通过的?
不知道……反正编译器是通过了……不过后来还是改正了
#define N 10之类的 ……
但是这个不是我要的……

很久很久没有编程了,都还给cs1101了
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版所有回复从这里展开收起列表
作者:水鸭子 (等级:14 - 天人和一,发帖:9284) 发表:2007-04-25 02:53:55  5楼
copy paste 的时候 有问题,再改一下#include #include #define NT double NT f(NT x, NT y) { return x+y; } NT rkstep (NT x, NT y, NT h, NT *err_i) { NT k, y12, y1, k12; k = f(x,y); y12 = y + k*h/2; k12 = f(x, y12); y1 = y + k12*h; *err_i = fabs(k-k12)*h/2; return y1; } int main () { int i = 0; // for loop index NT x = 1; NT h = 1; // what is the value of "h" ? // dynamic sized arrays, (actually these are pointers) NT *y; NT *err; NT *result; int bound = 4; // "bound" is the size of your array x=1; // allocate memory for pointers y = (NT*) malloc(bound*sizeof(NT)); err = (NT*) malloc(bound*sizeof(NT)); result = (NT*) malloc(bound*sizeof(NT)); // ensure memory allocation is successful if(y == NULL || err == NULL || result == NULL) { printf("malloc() error: y, error or result!"); return 0; } y[0]=10; for (i=0; i
奇怪……malloc and free
需要include什么library么?
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版所有回复从这里展开收起列表
作者:水鸭子 (等级:14 - 天人和一,发帖:9284) 发表:2007-04-26 17:17:45  6楼
malloc 和 free 是C 自带的,不用另外连接 library。
#define MAX 100 对我来说比较容易理解一些
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版所有回复从这里展开收起列表
作者:水鸭子 (等级:14 - 天人和一,发帖:9284) 发表:2007-04-26 17:31:50  7楼
rkstep(&f,x,y,h,n,&err[n]);试试, 感觉这里面的错误不止这个,你声明数组的时候,怎么用变量来定义数组的大小 NT x, y[n], h, *err[n], result[n];??? main function NT k[n], y12[n], y1[n], k12[n]; /?? rkstep function 这编译器是怎么通过的?
shit.. 才刚刚想起来array就是point..
rkstep(&f, x, y, h, err)
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版所有回复从这里展开收起列表
论坛导航 -> 华新鲜事 -> 求学狮城 | 返回上一页 | 本主题共有 7 篇文章,分 1 页, 当前显示第 1 页 | 回到顶部
<<始页  [1]  末页>>

请登录后回复:帐号   密码