作者shaopj (天空蓝^_^)
看板C_and_CPP
标题[问题][急] 指标问题,麻烦帮忙
时间Fri May 8 14:29:11 2009
sgesvx_(char *fact, char *trans, integer *n,......real *rcond,)
小弟我要呼叫一个Subroutine来用,名称是:sgesvx_(),
但是sgesvx_("real *rcond,"这一项一直搞不定),
source file的说明如下:
http://src.wtgstudio.com/?hM3FN4
譬如说, integer *n ,这是要输入的,假设我想输入3,我的作法是:
integer *n, n_val=3;
n = &n_val;
这样应该没问题
我的问题是, real *rcond ,这是程式计算後会output的结果,
请问我应该如何宣告呢?
麻烦帮个忙,谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.224.82.71
1F:→ james732:real rcond; sgesvx_(&rcond); 是这个意思吗?? 05/08 14:42
2F:→ shaopj:我是这样输入 sgesvx_(n,rcond), n应该没问题 05/08 14:46
3F:→ shaopj:rcond不知道要如何正确宣告 05/08 14:47
4F:推 ledia:不用多一个 n, integer n_val=3, 传 sgesvx_(&n_val); 05/08 15:12
5F:→ ledia:同样的 real 就跟一楼的一样 05/08 15:12
6F:→ shaopj:谢谢..我重弄试试看... 05/08 15:15
7F:→ shaopj:再请问一下,real *a ,a 是一个阵列 ,那该如何input 05/08 15:30
8F:→ shaopj:目前的作法是:real a[3]; a[1]=x,a[2]=x,a[3]=x;sgesvx_(a) 05/08 15:31
9F:→ james732:再把你的问题讲清楚一点好吗?? 05/08 15:37
10F:→ shaopj:嗯嗯 不好意思 05/08 15:40
11F:→ shaopj:a 是一个要input的real array,假设我想输入a=[7 8 9]这个阵 05/08 15:44
12F:→ shaopj:列,我目前的作法是:先宣告real a[3];然後在指派阵列 05/08 15:45
13F:→ shaopj:a[1]=7,a[2]=8,a[3]=9;最後sgesvx_(a) 05/08 15:46
14F:→ shaopj:real a[3]={7,8,9}; sgesvx_(a) 这样可以吗 05/08 15:48
15F:→ shaopj:sgesvx_(里面是不是都放位址,也就是加个&,但阵列怎麽办) 05/08 15:49
16F:推 ledia:阵列就直接放, a[3]; => a 本身就当作位址 05/08 15:52
17F:→ shaopj:所以说sgesvx_(&n,a,&rcond);阵列a就直接放进去,其他加& 05/08 15:56
18F:→ shaopj:那如果我想印出output;例如印rcond; 05/08 15:57
19F:→ shaopj:print("%f",rcond)应该 是这样吧 05/08 15:58
20F:推 ledia:printf ? 怎麽不自己试一试, 等回答应该会比较慢吧? ^^| 05/08 16:15
21F:→ shaopj:我有印啊,只是印出来的答案不如预期,我想确定一下这样印, 05/08 16:18
22F:→ shaopj:有没有错 05/08 16:19
23F:→ shaopj:虽然还是有不少问题,但很谢谢大家的指教,继续努力 05/08 16:21
24F:→ shaopj:我真白痴,忘记印的时候是ferr[0] 搞老半天 多谢ledia大 05/08 18:20
25F:→ shaopj:thanks all!! 05/08 18:25