- 在线时间
- 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
- 自我介绍
- 中国地质大学的学生
 |
以下是《计算单位阶跃响应的上升时间》的部分源程序:
# s# a% N8 [# p( B5 n) R. O
0 z% j$ d8 U3 G& a; n# include <stdio.h>/ h2 o6 }4 ]) I, u5 M
# include <malloc.h>
* Z0 J/ ]4 X( T) q9 y* z3 L9 J# include <stdlib.h>( p; f5 w7 E' p
5 I; y3 r0 Q# P5 h- k/*
7 }+ i. V0 o T5 ^6 _4 a6 g** delta---抽样时间间隔;tr---响应的上升时间;n---抽样数;f(i)---抽样数组。' n1 Q1 n6 k- Y/ s$ I
*/
* l7 d/ \6 r) ^" M/ B& N3 j. T0 N8 J5 @) n- c! Z M
void get_data(float * pf, int n);6 V5 r) m" D0 U* e* V
int main(void)* D/ r9 f9 m/ S; `, n% ?4 [$ Y0 H
{
5 a2 f' L8 D7 J6 ^ int i;
" u: W$ g2 q1 O4 P& B- i int n;
3 s9 A: r4 K/ _7 `( o, D. G. v9 l8 G" t float delta;1 U6 n! A" R+ C7 U
float * pf = NULL;
+ y/ q$ g/ c4 i R& v- ]
) H1 C: b2 V3 L* t, b* c' p printf( "请如入抽样数: n = " );. N0 o6 l" C: g) J2 G4 n
scanf( "%d", &n );
# g$ l7 \# ]3 R! r9 \% m, j printf( "请输入抽样时间间隔: delta = " );
7 T, H" l8 f* P9 @ w scanf( "%f", &delta );
6 L$ c7 K B, N6 g printf( "请输入抽样数组: f(i)\n" );' \5 c$ h* ~) m* _- l: X, d
3 k7 X" D- |" O* X' O) U6 ~
pf = ( float * )malloc( n * sizeof(float) );
5 Q# ^* Y9 K! l) o: Y$ W# J: E1 ]: M$ i6 U
if (NULL == pf)/ }0 t1 f; y( R3 T, m
{
0 ^6 M0 Y3 u, u/ T, L; B% J8 o' x' W printf( "动态内存分配失败!\n" );
) A4 T# s, J$ r, I% D! t( E+ g- R5 Y8 u/ n exit(-1);
4 N+ B+ H4 l6 L# _, e3 y& h }* L' U5 q+ T$ G# ]2 u( C( I& b2 _
* ]3 _8 V$ `0 I6 w+ u- K get_data(pf, n);
' a1 R2 C: `; a! \' c8 j) n+ V. p( @' d; @, F0 E; W& E& }+ ?
// 数据输出
! H% T( y/ X6 ]9 ?8 k- o4 ?9 \& n4 D for(i=0; i<n; ++i)0 d: O. p3 J( w0 J
printf("f(%d) = %f\n", i+1, pf);
* Y6 `8 r8 q0 A G) u9 G) L
1 U7 N: E2 i. x: }* A: Y. h7 J: ?) f: i return 0;
P8 z, N* ]4 ]9 h, f3 C}6 b( F9 T4 Y6 }5 Y# `4 }$ |
& w! T. W3 X, Yvoid get_data(float * pf, int n)
7 k1 a' j, I' q, U{9 m5 \% ^6 N1 ]
int i;% B* Z8 `, M; A: k& T1 A% p) H5 `
+ I0 b" I% G: \6 y M, G
for ( i=0; i<n; ++i)$ ^, m. h3 D) L2 n
{$ ?+ C( m( t" c# u% C
printf( "f(%d) = ", i+1 );
3 z2 ]0 T% w0 w: M( Z9 x scanf( "%f\n", &pf );
) [2 j( T; a' O: W; ?7 q# K5 R8 ] }
0 S$ Q7 a! r: g3 L9 j}
) Z" @5 ~6 k- b0 z9 g: d- R- v# s0 P1 G
在敲完 void get_data(float * pf, int n) 函数时测试输出f(i)时出了问题,打印为:
9 |) X4 [* k3 V: z, E% }6 E" k, o3 H# U% U
; B2 B9 z1 N" y; Y, D 4 {! k( c9 P8 f2 o' j$ d
' q3 q* S0 b0 m6 q想了很久,还是想不通! |
zan
|