- 在线时间
- 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
- 自我介绍
- 中国地质大学的学生
 |
以下是《计算单位阶跃响应的上升时间》的部分源程序:7 @4 b, }: i8 w& i4 z [3 O1 O# E) P
5 c" C# @( o' H* c% |% X Q
# include <stdio.h>8 G c1 t, A# a6 W* F! a+ y- U- ]( ]
# include <malloc.h>$ m1 ~2 o1 p, z
# include <stdlib.h>7 d! W8 b/ }6 J9 B4 R# N
" p7 A e' E+ z- A; R) w1 T+ z
/*
$ k W. u2 ~# h! ]/ |9 [: c7 _/ S** delta---抽样时间间隔;tr---响应的上升时间;n---抽样数;f(i)---抽样数组。
9 b# J6 G- u( [! d/ I*/. O$ X) y. W9 C) u
. y) w2 m- y$ `& u) L
void get_data(float * pf, int n);) j3 e5 j& w/ T6 x# d* d7 ~/ V+ R; ^
int main(void)
! J* D: q4 ^" o. H# z. k{' s9 S4 M ?/ i0 O' \! P- A% Q4 {
int i;+ Q" G# H% a" W" \7 V/ f! k8 ]
int n;5 n# v; E1 Z- M2 \. T. {- ^
float delta;/ e7 b. P" s' @7 S! v g/ S$ n
float * pf = NULL;
' `2 n* w. Y. b* t& l9 N9 k4 B/ \* I9 e0 r- ~; g* q8 j7 I: g; E4 R
printf( "请如入抽样数: n = " );
: ?5 p% h6 X% Z6 C* y scanf( "%d", &n );2 d% t# f4 u9 _; m# [
printf( "请输入抽样时间间隔: delta = " );1 D1 Z# g1 P. c% p0 v; X
scanf( "%f", &delta );
7 d; |8 V0 j' [8 T0 z# x+ C printf( "请输入抽样数组: f(i)\n" );
, [1 ~* c# B; E- l# P+ _8 X
! g0 C; w0 u5 c8 p pf = ( float * )malloc( n * sizeof(float) );* X5 W6 S; T0 b3 c" A
0 |' e& `$ a6 ~+ C if (NULL == pf)
3 l! i h: o2 ~( G" Y {/ B$ P' {) b+ W" E2 `" Z" c8 y- t
printf( "动态内存分配失败!\n" );
& p) l, Q' p4 ]7 Q a exit(-1);- Y- h! k' z/ r6 S4 U% ~" B# e- }
}
/ e8 S0 P4 p `3 l0 U
3 D# l! w7 d' S: c" F get_data(pf, n);. @8 }" a+ r8 `! y, s
) C" }* Y e! t* O% R2 t4 z// 数据输出. x# J" q3 q+ |) y7 s* B
for(i=0; i<n; ++i)
: {! k3 q' t- h2 X# \' ^ printf("f(%d) = %f\n", i+1, pf);
% ~' Q7 C' I# @7 g0 @3 P$ P
& u2 I! k7 i$ L. b" I8 q return 0;7 X; X s9 [; c0 {4 W7 T" \0 f
}# o+ N% R9 `% @
0 x) e& Z8 t- b! I7 ]+ u
void get_data(float * pf, int n)7 H0 m& {9 A8 m% a6 c' W
{
4 f* G# E; s' E4 N0 R5 Z V int i;( V; M- s3 m, q `+ I
7 P: L+ U8 |! S; |& A for ( i=0; i<n; ++i)
( H" K! U' [& L* X {" j+ V4 j% q. @$ Q
printf( "f(%d) = ", i+1 );2 c, a' R( Z: K% l% s
scanf( "%f\n", &pf );* B4 a, p- z( w3 L/ y
}
6 Q( [( {; g+ G. z# d; F6 U3 X}0 i. u- ^- w+ ~6 Q4 y
+ G+ I" i8 ?2 q5 t
在敲完 void get_data(float * pf, int n) 函数时测试输出f(i)时出了问题,打印为:8 W6 Z- L3 W. S1 N. e* i; p
( f t8 q( d' T5 N
( g7 s) e$ j! n! }: ~0 z : [# S2 Y7 M( ` B v r' R" s
2 M- o$ `' [+ h. x* d想了很久,还是想不通! |
zan
|