数学建模社区-数学中国

标题: C菜鸟跪求求高手指教!!! [打印本页]

作者: 许凯    时间: 2012-2-25 13:50
标题: C菜鸟跪求求高手指教!!!
以下是《计算单位阶跃响应的上升时间》的部分源程序:) |3 V* s! h$ \1 W4 `
4 k- G/ ^3 x: ]* I0 u% C5 l
# include <stdio.h>
9 X% {& _8 C: T. C( U# include <malloc.h>5 x2 N( q/ ~1 x' O! T
# include <stdlib.h>
* S9 C/ v* Z: i- X$ Q+ Z+ Z5 q6 R6 c
/*2 d, V7 @( ~) p- d1 D. r" g! A# T
** delta---抽样时间间隔;tr---响应的上升时间;n---抽样数;f(i)---抽样数组。
/ G! H1 Z/ [; g* a# z5 D, U( ]5 P*/" ], H5 S- _  J1 {

/ `% u( _$ Q+ H; S4 d& Jvoid get_data(float * pf, int n);
. y) g6 [/ v5 v3 h# e5 dint main(void)
% @$ n0 v$ M6 f. [* @1 n& H{, [0 t0 F4 j4 d5 W
        int   i;
# o5 I6 @+ {( |$ m        int   n;
5 X; N9 G8 B! i+ I2 c/ c        float delta;
" a5 P' Q9 u- h9 z  z9 O7 y/ s4 F        float * pf = NULL;+ f& \$ F! h8 a2 G, `

7 H  Z5 D$ |, c  w+ W/ C        printf( "请如入抽样数: n =  " );
, M6 U7 {1 n  Q5 G, U3 ]        scanf( "%d", &n );
* H& J0 P5 ]. {* p( f0 G2 n0 |; h/ Q$ T        printf( "请输入抽样时间间隔: delta = " );
. P6 j7 M: H: z( ?- N; X  w! x: F        scanf( "%f", &delta );
/ `8 w6 E8 H4 @1 _. L* ~        printf( "请输入抽样数组: f(i)\n" );
1 V2 I# S) a+ R# g8 U: j+ d
. S2 Y1 i% b, u. Q1 R0 b        pf = ( float * )malloc( n * sizeof(float) );% F$ ?$ n# M/ H. H# \" b

" {  A3 \0 P7 @) m! \  d        if (NULL == pf)
: J; R1 E1 c- n( z- y        {
5 F& s9 N, ?9 ^, B) H6 F9 q9 x                printf( "动态内存分配失败!\n" );6 ^# U8 y; ?6 F, I, J9 x* C- V. x5 g
                exit(-1);
5 R5 H& W5 N5 u! C* j        }
) a/ ?3 X3 Q& _$ @$ q2 e1 d
3 }7 n% ?4 _- \+ I4 Q        get_data(pf, n);; |# z' `$ v$ \
2 e- Z( h- l6 r0 }3 A
// 数据输出1 B+ e8 r; M6 `' ]9 p% v) ^
        for(i=0; i<n; ++i)* d& r4 Z& _4 u( U: _( F
                printf("f(%d) = %f\n", i+1, pf);
) {: r+ q+ f4 Y* b' z) I( T/ @+ S' p" {1 y; S6 Z
        return 0;
: i" }8 ~( J; L8 X3 s! W1 F}
% [& v7 Y* w( T6 T) U
8 ?7 h  B1 x: n; [! m5 |void get_data(float * pf, int n)- k- f$ a1 M+ m: x. U# o
{: w6 s, T2 F7 I) w( G8 V5 W
        int i;
% M9 K: q. [. h5 _+ E( `5 ^4 I2 V, X* s5 t$ {1 o# G/ b5 d
        for ( i=0; i<n; ++i)
3 n9 b% i. L" F6 M  U$ x3 W4 y        {
# [+ d6 L. V( d, C1 s                printf( "f(%d) = ", i+1 );- X8 C- k$ K. E6 f: T0 z& f
                scanf( "%f\n", &pf );8 q% y) B0 c+ k* h$ S8 \
        }% S5 _* R" ^4 P4 w
}6 h6 f& O1 p+ u- c+ R8 Y( ~
4 K5 U: N, `' x3 {% |$ e; R
在敲完 void get_data(float * pf, int n) 函数时测试输出f(i)时出了问题,打印为:
5 Q/ [# f/ i: L. W$ b
. O& d. o7 R6 d  {" T, j( I+ P( u# c
$ q" K7 F* F9 J9 ^# C1 p
% F8 s# a( C( j4 S: J; H! ]
想了很久,还是想不通!
作者: 许凯    时间: 2012-2-25 13:56
坐等呀 !!!!
作者: moderstone    时间: 2012-2-25 15:33
可惜我也不懂呀!!
作者: 冷夜舞声    时间: 2012-5-8 18:05
看不到你发的图片也
作者: qlb061    时间: 2012-6-29 18:44
本帖最后由 qlb061 于 2012-6-29 18:48 编辑 , {8 Z! p2 T5 Y
  1. /*output data*/3 A5 F# G& \+ A" j% {& A" p
  2. for(i=0; i<n; ++i)
    1 a  Q+ z+ E+ h1 z% t! [# [6 J+ |) n% @
  3. {4 W. Z8 d+ o( t2 b* }, }( h5 b1 {/ e
  4.        printf("f(%d) = %f\n", i+1, *pf++);  p" ^5 [1 R- q" P9 e2 L# a& K
  5. }
      f+ `4 L7 I; G) ^( x9 k
  6. /*input data*/, {) T/ r! x+ d" w( }; @2 J
  7. void get_data(float* pf, int n)4 D( u1 B! H5 m9 F: z
  8. {
    * q- W6 p) S# _$ i  ]
  9.       int i;
    7 B% j1 ?; [! {2 K' ]

  10. , `+ Y4 y5 G6 f' L- H
  11.      for ( i=0; i<n; ++i)
    8 M4 X* Y7 t4 @' t
  12.     {$ {* S$ `1 G( {6 w
  13.            printf( "f(%d) = \n", i+1 );" V0 ]& p0 `6 k" ]+ Z, Y0 T% \
  14.            scanf( "%f", pf++ );2 S) ~* Z2 {$ A4 p
  15.     }
    ! z7 [9 b' ]* N  @0 N; H
  16. }
复制代码





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5