数学建模社区-数学中国
标题:
C菜鸟跪求求高手指教!!!
[打印本页]
作者:
许凯
时间:
2012-2-25 13:50
标题:
C菜鸟跪求求高手指教!!!
以下是《计算单位阶跃响应的上升时间》的部分源程序:
Y) h. g3 x3 @1 o+ o
9 X4 K. q! Q' i/ a
# include <stdio.h>
- l9 O5 Y2 ~( a2 F
# include <malloc.h>
# }+ _+ M; b: Q# Z4 I( W5 }
# include <stdlib.h>
) F/ R% _# a4 z3 ^. N' B6 q
. F0 t+ a; Q% N' k" k- O
/*
/ j; `7 j" v4 p) W
** delta---抽样时间间隔;tr---响应的上升时间;n---抽样数;f(i)---抽样数组。
7 \+ N9 T$ ?6 B. c9 m0 ]
*/
% V: |. o" N+ _9 x" l5 |9 ~5 F0 T
1 W& ]! J' V8 c S1 _ Y A2 T
void get_data(float * pf, int n);
" h6 R. x" t+ c2 Y( \
int main(void)
' O. S4 {% k! t) S# Q* O
{
' W. C3 V5 _8 ^
int i;
2 y1 m% j( | @* J. ]+ D, m3 W
int n;
1 o- }9 Q$ t! ]7 a
float delta;
8 ?6 l5 k3 p# X1 q' j& u
float * pf = NULL;
5 V. T4 F8 c% X" ~5 F; y
: B$ j8 t6 S" A* o" A
printf( "请如入抽样数: n = " );
) d" Z: H. t2 d5 K Z
scanf( "%d", &n );
7 }( h# h+ r9 G) N3 w2 d' z6 b: f
printf( "请输入抽样时间间隔: delta = " );
% t4 K0 j) d' ]5 w3 ]: F: h9 n8 p
scanf( "%f", &delta );
' m4 O! ^* n, [# b5 e
printf( "请输入抽样数组: f(i)\n" );
% x) L2 o# n1 |4 E8 r9 ?
. K1 c5 I) d# Y h' s7 c
pf = ( float * )malloc( n * sizeof(float) );
, ~2 a% L" ~6 ~9 ]9 `4 {% [
, r5 A, H# }% H
if (NULL == pf)
9 j! n8 Y* x: |& t
{
& w% x! W5 ?% y9 S3 w) H
printf( "动态内存分配失败!\n" );
; H- M& x3 H" u( W# W- }$ ]
exit(-1);
2 e4 {' {4 E, z4 Q
}
( j, ^3 [3 |, H3 X
( d; f& ~! U0 Z; M+ J: p* s
get_data(pf, n);
0 H _6 M1 R4 n1 A# x/ p, R
/ W/ P+ Z! a1 ] n+ r6 t
// 数据输出
9 \8 p& U1 ^! l) ~
for(i=0; i<n; ++i)
$ M0 R3 R; R3 e6 C8 y
printf("f(%d) = %f\n", i+1, pf
);
a3 q' ]6 Q" i2 Q# v6 Y k
2 U) b& h7 V( m( N3 J; V6 @
return 0;
" o! ^+ E5 U+ r4 S
}
1 ~4 R* E b, t8 }) W- N
# [% ]' l& V8 R6 Q1 I( d1 w
void get_data(float * pf, int n)
: G8 X7 [2 E) P+ w8 l- r: V
{
- I9 w: V/ r t+ ?
int i;
0 Y! J+ Q7 g! }' ^4 Q
: l: F( o7 J3 x4 g- |
for ( i=0; i<n; ++i)
* F* q5 h; v& F# ^& o8 o* J
{
6 R8 S4 @$ W- X2 U; L ^$ s; Z
printf( "f(%d) = ", i+1 );
( h) S5 n& u" H
scanf( "%f\n", &pf
);
k0 k; v) d# t; z/ K4 p
}
( q) }0 H6 D- k" U
}
: ], O8 l$ R1 ~( j4 x+ B1 M
8 S) R/ c4 F8 q" ]/ x
在敲完 void get_data(float * pf, int n) 函数时测试输出f(i)时出了问题,打印为:
* B; ?1 z' M" w# \ k
* ^! F, N. U' ~( m7 E& r3 k
5 h5 W% c( {( M( d
) V8 o8 E' U" r* J& d w
+ a( ?5 N. i, \% b2 G) @: _
想了很久,还是想不通!
作者:
许凯
时间:
2012-2-25 13:56
坐等呀 !!!!
作者:
moderstone
时间:
2012-2-25 15:33
可惜我也不懂呀!!
作者:
冷夜舞声
时间:
2012-5-8 18:05
看不到你发的图片也
作者:
qlb061
时间:
2012-6-29 18:44
本帖最后由 qlb061 于 2012-6-29 18:48 编辑
& ?; f& \: t3 d. V' B6 ]
/*output data*/
. ]6 D2 F: a( s9 Q
for(i=0; i<n; ++i)
, A b3 l& ?' i: q) M
{
% G' M8 Q$ @. [" q/ Y' `- p% v
printf("f(%d) = %f\n", i+1, *pf++);
+ y6 {6 L% w: l7 E( A
}
; |- d* p% L9 R$ M+ q$ F
/*input data*/
6 V) ?/ K' N2 l5 Y. U- R# E
void get_data(float* pf, int n)
) @2 c0 n' P2 N X r
{
! O$ \: z. X& V
int i;
/ g5 Q. S( T( R* ?8 G1 S$ P: g! R
7 H5 k$ J7 s. g; a# i
for ( i=0; i<n; ++i)
; ?6 u% y0 I8 {: _, T
{
1 o. g! K2 k$ L! F3 m
printf( "f(%d) = \n", i+1 );
1 f) v1 I$ E% A7 {* G
scanf( "%f", pf++ );
3 d- R% W( i6 U
}
5 b" D- s3 {( `: V! ?
}
复制代码
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5