- 在线时间
- 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
- 自我介绍
- 中国地质大学的学生
 |
以下是《计算单位阶跃响应的上升时间》的部分源程序:
# ~4 |6 F5 c9 \. N
7 u" H" P8 N7 R# ~7 l( R# include <stdio.h>
, R# P- k& I. I* F* U" { ]5 j: l4 c# include <malloc.h>( H* b0 j* \. j) g1 p3 ^* z
# include <stdlib.h>
- S7 d1 c }/ |& K U4 c- E, Q: d% G; R! y, r8 T. M* ^
/*
6 i2 s" {$ J* U- B: O** delta---抽样时间间隔;tr---响应的上升时间;n---抽样数;f(i)---抽样数组。
5 p' ?! d* }' R. U- n& a/ v# N*/
1 K# N- Y& o9 y& K8 |6 q( V. B/ U
& b; Y7 b& B0 _: f% i( _void get_data(float * pf, int n);; B8 X6 x- c1 K* X; d1 @. X
int main(void)+ s; l' D8 v" d* t+ l6 r
{
/ [3 |& Z- l @- ~0 u int i;
- V' h- L: E: v v9 U; R$ b. n int n;) y6 ^ ?, i2 p
float delta;
8 T9 l6 `+ ]8 h! X8 N, c Z float * pf = NULL;7 J/ L- |( @4 @9 O7 V) B$ E
4 a" q0 I! c' b" _
printf( "请如入抽样数: n = " );5 U7 Y* t% |( c9 i; D# r, I# |
scanf( "%d", &n );3 S: t" w# D6 ~$ \6 v2 p8 P4 S
printf( "请输入抽样时间间隔: delta = " );: B! l! _' m' C4 c1 U
scanf( "%f", &delta );6 [5 ]8 l3 R: A* R/ [4 G' h
printf( "请输入抽样数组: f(i)\n" );: z; |% q+ @/ ^! u
4 x. J( w7 E( _$ f0 s pf = ( float * )malloc( n * sizeof(float) );
9 L) q' |7 ^0 q& F3 a
' B2 w. _+ A1 |$ m3 u4 w$ u if (NULL == pf)
; F5 `# u0 `' E/ @! s' d {
- W0 e& j6 H1 X# W4 Y# Q( i, } printf( "动态内存分配失败!\n" );
$ A% J% g' x8 T exit(-1);8 u1 z2 [' { _9 x- b$ u9 Q
}
) K0 i& r& B- g2 b4 _
" `4 k6 [0 S# q: [4 z) f* Z7 H get_data(pf, n);
% C1 a% f6 r$ `% Q4 H, F8 Q+ ?$ R( w" \- i: Q3 ^9 _, E! r8 X/ B- s
// 数据输出
. H6 y. z2 J/ f4 a. v/ t+ E& b for(i=0; i<n; ++i)- I; g$ B1 N4 f4 ]1 l j& @4 {
printf("f(%d) = %f\n", i+1, pf);
3 t; p5 L$ F9 B. P# c2 Y$ I0 t& [% z9 r4 m" t0 b2 w
return 0;
! s6 H x' r. P- f) b( \* h% l}
& J( u' F0 `4 n1 H. c. S% I# e6 j. m$ M0 z, e" _! n. F L
void get_data(float * pf, int n)$ d" G3 r. @. \9 l( k3 n
{2 [1 k, l( W c+ y4 s
int i;* u0 q6 R* i" v. w. m: ~
3 \1 r: \$ _- l- Z& R1 A
for ( i=0; i<n; ++i)
/ O+ V, B' O: b; k) c8 ^ {
/ N8 m& V: S' S printf( "f(%d) = ", i+1 );3 c( R: i. E5 E7 j
scanf( "%f\n", &pf );
* c6 Z+ J7 [1 z7 X& Q) `1 {* z5 j }8 ~0 s7 W9 b0 g9 p. z5 t; X& _
}
1 E) |" \. ^1 y3 N7 E4 {9 L# s
$ ~7 I4 L+ `/ O4 o在敲完 void get_data(float * pf, int n) 函数时测试输出f(i)时出了问题,打印为:
# B! |8 v3 R( w! W a, T$ l5 Z( b, y% s% l
: b% f! E- Q: i* u* }( ~# Y
( ~" u1 s# i* d0 V9 @$ ^
" s0 O1 D% o1 _/ p
想了很久,还是想不通! |
zan
|