- 在线时间
- 6 小时
- 最后登录
- 2012-4-16
- 注册时间
- 2012-2-21
- 听众数
- 3
- 收听数
- 0
- 能力
- 0 分
- 体力
- 100 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 34
- 相册
- 0
- 日志
- 0
- 记录
- 1
- 帖子
- 14
- 主题
- 2
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   30.53% TA的每日心情 | 开心 2012-2-27 16:45 |
|---|
签到天数: 4 天 [LV.2]偶尔看看I
- 自我介绍
- 中国地质大学的学生
 |
以下是《计算单位阶跃响应的上升时间》的部分源程序:
& p+ F x+ L& E( _- y
3 @# o) s }" z- O8 }# include <stdio.h>
) p4 }" Y: u" t7 _% g# include <malloc.h>
: Q+ s1 H- n) B7 k' J# include <stdlib.h>& t- X d2 l" q) g& w9 L o
1 z) z' N- }" Q6 h) d$ B
/*
! ]; Y! U4 ^/ N. V7 A6 ]3 a** delta---抽样时间间隔;tr---响应的上升时间;n---抽样数;f(i)---抽样数组。- S& q& m8 h& j' P* H/ Y4 f
*/
# A+ x" R+ i1 B, [' J8 `; A7 L: b F" D$ K3 g0 H0 V+ N+ Z
void get_data(float * pf, int n);
0 L* d% W- c0 v; O* d3 C. lint main(void)
1 p+ `; {$ V& n3 v{
7 @$ u5 B. K- {8 ?) n8 `2 J; Q# l4 V int i;
~: N* u, G. P5 F- w int n;
! }% ~! T, J4 |# o V( t* Q float delta;
. ~1 ]* t' m1 Y% j" ?7 B float * pf = NULL;- `. m; b1 ^7 j# S% H0 J
* a0 p# `8 t1 Z8 S
printf( "请如入抽样数: n = " );1 M1 \& J% E, g+ r
scanf( "%d", &n );* |/ V' H& y7 S7 j* x0 t6 j7 l
printf( "请输入抽样时间间隔: delta = " );3 e' ~6 j/ ?4 G5 E( w2 d
scanf( "%f", &delta );# e+ }0 Y; E, J5 r1 J
printf( "请输入抽样数组: f(i)\n" );$ g a9 g* z$ P+ n( i0 Y
+ H) q. q; [/ z! D& ^3 r I( E1 ]
pf = ( float * )malloc( n * sizeof(float) );
& g/ y0 `7 ~- ]: `+ e. x/ g& }: @$ m7 v w0 Y) x' f9 A" S
if (NULL == pf)
" t, N: q0 `/ M0 b: s4 b/ G {
3 a8 z9 c8 K" K printf( "动态内存分配失败!\n" );( s3 r# w% J! c$ h- k5 a
exit(-1);
8 D6 P. T; h9 F! b- t9 s }- `) O0 [0 f2 M( A( |& L& U) E
- B% s! u/ J5 D# F1 a2 f
get_data(pf, n);$ I/ w$ e) K& k6 H
' o9 H) E6 A* h// 数据输出) D- W1 c, \4 R* f' _$ ~
for(i=0; i<n; ++i)
+ y d* }3 s! w, p: v, F printf("f(%d) = %f\n", i+1, pf);
# K% t- I* T8 o- j6 @ i2 Y0 ?: B, T' x
return 0;8 o* Y- p5 Y. d1 z
}, U$ T$ M( [6 P0 @
6 U# b3 y9 p6 p' n& N7 a) }0 D) o
void get_data(float * pf, int n)6 j5 d$ d2 S0 h9 Y9 b" H8 l
{
7 V7 G& |) g( [! [ int i;! S$ e2 U- \& W5 [
' Q( J$ ~ c' t1 Z# X% W
for ( i=0; i<n; ++i)8 Q5 ?% m6 n/ @) y. Y
{& V4 a* V! m& F- Y7 Z
printf( "f(%d) = ", i+1 );
) g9 ~# b1 A8 D5 G# P8 ^; _, i) \ scanf( "%f\n", &pf );- l' z, X1 S( s! S3 v
}
3 F' `2 c) k/ P}- T1 B' ?+ n/ t( Y
' Q% k3 u2 {- f$ Q在敲完 void get_data(float * pf, int n) 函数时测试输出f(i)时出了问题,打印为:1 W2 y: d/ [" P- A
7 K4 C: @! u) Y, K+ _5 T
q9 U5 l; `# D4 @![]()
& u5 ]% y* p$ W% L% C* N) v( [7 d+ G( M/ S, w
想了很久,还是想不通! |
zan
|