- 在线时间
- 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
- 自我介绍
- 中国地质大学的学生
 |
以下是《计算单位阶跃响应的上升时间》的部分源程序:
' T6 D$ P0 ]: x! i' {
. q! E# A3 D, y" g. d, H1 a c# include <stdio.h>
2 E3 s9 I" H, d% s' O. A# include <malloc.h>) S2 |; p; ]1 Q( {) U: B! r) }
# include <stdlib.h>
+ n2 A) q0 e% o& K( B$ m- V: [& z$ D2 g7 J" F$ I9 x7 B
/*
9 J: D/ ], k: P- g** delta---抽样时间间隔;tr---响应的上升时间;n---抽样数;f(i)---抽样数组。- }# A5 e0 [+ G) E
*/
' E- t+ U) @8 E9 c1 h: ?; m9 e5 {. ^: ?. z" `
void get_data(float * pf, int n);& o9 G% T7 ^& m- p% m1 ]
int main(void)
`% O% c) N) p F{& z: E' t) M1 Q
int i;/ `8 X' T0 Z2 b; B$ \% t) y& H
int n;
1 i$ U0 Z( D) M% k6 b8 T float delta;
: P5 Q& t& [' s' O- }0 y8 j* y float * pf = NULL;( k' v7 `3 ~3 I: e/ v% A! o( C
; b( W5 s+ R& R. Y9 q/ p1 x/ k
printf( "请如入抽样数: n = " );: G$ {6 J' _6 f/ V7 q
scanf( "%d", &n );3 K+ _; f- \ l! }- d$ V( S& B
printf( "请输入抽样时间间隔: delta = " );
' e7 r/ Q0 H0 Z scanf( "%f", &delta );0 [8 w8 Q' d. D" r
printf( "请输入抽样数组: f(i)\n" );
5 V" [" h$ ^6 I. ?3 |" K6 f7 q @+ I/ i3 q, X
pf = ( float * )malloc( n * sizeof(float) );
0 p, W2 t3 p3 \4 v- d
$ ^# |% Z2 ?+ l3 J' W/ j2 Q9 G1 E+ | if (NULL == pf)
! {, Y5 E$ i) g/ m8 T {: Q7 l/ |- c3 D: G$ h
printf( "动态内存分配失败!\n" );" d x: x A* h
exit(-1);' G C8 x5 R' ?5 _8 B+ Z8 l* |
}
' R t1 e: [, f3 Q* C! U6 D/ \' u$ D. G" d* K* Q5 Z5 @/ q
get_data(pf, n);
$ Y1 ? ~* {. {. R! ^- ~+ C: E) Q d" \( y
// 数据输出 ]# o) j$ j4 e7 z- i+ A
for(i=0; i<n; ++i)7 X$ Z$ P3 B5 b3 z
printf("f(%d) = %f\n", i+1, pf);
0 I' i3 Z# l6 I5 O' b$ p' r- c- q; @" n2 G
return 0;
9 j" d/ _9 t/ A5 G t! c}: ]: N5 T2 p9 O( e; t& o5 o
2 y! {5 v& H0 c
void get_data(float * pf, int n)
% O7 }. k. v0 w" o) t' u, X{
, I4 c* Q; Y1 E0 L- X8 v" m& f( m int i;
- N' C5 r+ E* }+ d6 a" D5 F$ n5 X9 H9 g/ p
for ( i=0; i<n; ++i)
* b$ S6 I9 K. O& [( H+ P {- |: h2 `1 d1 R+ K( R
printf( "f(%d) = ", i+1 );; J5 M8 x( m5 _9 T
scanf( "%f\n", &pf );! d/ v1 [3 X; v+ m- Z. R
}
: c* U) O3 F/ F1 r}( K7 N* {. j0 R4 T2 g- J6 S
9 _0 _7 S. v: ~! f5 M! h2 R' A& o
在敲完 void get_data(float * pf, int n) 函数时测试输出f(i)时出了问题,打印为:
" G- B) U! \2 \$ z# ~+ C Q
# N1 }2 J8 L) ~; N# {" k$ ]3 a( C" F! J) n
/ l( U7 K& X$ k: d! z) w6 M# B
9 B% U. C# y8 n! l; i/ r想了很久,还是想不通! |
zan
|