- 在线时间
- 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
- 自我介绍
- 中国地质大学的学生
 |
以下是《计算单位阶跃响应的上升时间》的部分源程序:+ m1 y* D' q- w+ h) I% g3 h1 V6 F& M+ G
6 W! a4 P7 V+ u% r- ^! _# include <stdio.h>; b7 k1 e9 M5 Q
# include <malloc.h>
8 _2 Q' A% T+ B+ w# include <stdlib.h> V& k( `6 _! P! P$ x( e2 T
8 |8 T4 O% O4 _8 F5 h7 F. I
/*# G4 N, c2 q" G
** delta---抽样时间间隔;tr---响应的上升时间;n---抽样数;f(i)---抽样数组。
! h6 x! h! W( W/ j. ]- H/ ^*/
9 W4 y* _* {9 ? _$ B% G6 k5 F- Q% r7 e/ a2 n9 Y; A! m
void get_data(float * pf, int n);
4 k5 G! ]$ y# Q& u) G1 V- Qint main(void)9 {9 r* M: l+ B, U
{0 j4 ~+ w4 z# P1 z. o
int i;( I6 U# Y: I- D5 t1 U& Z0 c
int n;
; g+ V4 B1 Z9 E( C, z5 r: S% j1 b, d float delta;# m( X% A0 ~2 Z$ b' p8 i
float * pf = NULL;* A' R3 w6 B% C
+ t. H1 O' s1 }/ z! ~% T N printf( "请如入抽样数: n = " );; a2 L1 ?: T% T/ ^# I0 y, f( v! [* _% y
scanf( "%d", &n );8 H2 A+ t2 z( l3 D+ e- t d
printf( "请输入抽样时间间隔: delta = " );& x& ^2 e, T+ ~ D8 A7 t/ {) H
scanf( "%f", &delta );* }7 I% d" o L, J2 X: \( ~' W
printf( "请输入抽样数组: f(i)\n" );
7 d* Y! [0 W( l# O& A. L5 X
9 I- O# Z, \5 ]& v pf = ( float * )malloc( n * sizeof(float) );8 |4 w) ^: J e' ?4 v' |
0 w ^$ O y s6 U if (NULL == pf)
5 \; _7 G' }) H$ y3 U2 v {
" t6 p0 e" {% D) h' ` printf( "动态内存分配失败!\n" );
3 G5 l5 Q+ a4 i, z5 [4 G5 k6 \/ x exit(-1);
2 M. T7 v0 b; j8 X9 X0 _. j# \ }
/ f* @% x7 D9 S" [2 p
# a4 z& c# M* g. m# { get_data(pf, n);
% p6 R* Y0 M- h3 m, [2 U8 B" b2 \7 M2 s5 u- y* i q) V
// 数据输出
# d# T- m' A9 h( B$ M7 e# e for(i=0; i<n; ++i)
9 D* |5 O% r% h9 G printf("f(%d) = %f\n", i+1, pf);
7 e+ X+ U! \+ H9 {1 m8 Z2 ]4 A
0 o8 ^# D6 z' [+ t return 0;/ P7 ^' z6 V3 l: ?
}9 b! ^8 J( B( F$ q1 a, K- |' N
) b! V/ e( S) O( Bvoid get_data(float * pf, int n)& o" ~6 K% i7 u
{! n' M3 r6 g( O
int i;
# H2 v( E% }0 s
. e# s$ y6 [5 p5 Q/ q for ( i=0; i<n; ++i)' k8 z' w. p- V% Y ?) d7 |
{. x4 Z' A$ }# n
printf( "f(%d) = ", i+1 );& _- O. q; X- [0 m
scanf( "%f\n", &pf );
" w3 k( u& @4 w* [- J }, d- S2 v- y$ @; a& _
}
; i; o0 R& J Z8 p+ b. e( x6 H1 P! a, _
在敲完 void get_data(float * pf, int n) 函数时测试输出f(i)时出了问题,打印为:; l! x& y; ^7 g" O
3 s: W/ F; i8 F w( j( Y
9 e( v5 g" e( r+ }6 A0 L4 F9 c6 s: Y' E5 H 0 Z3 W/ _3 U4 n1 d
9 E0 W7 {, S- M( D6 v
想了很久,还是想不通! |
zan
|