数学建模社区-数学中国
标题:
C菜鸟跪求求高手指教!!!
[打印本页]
作者:
许凯
时间:
2012-2-25 13:50
标题:
C菜鸟跪求求高手指教!!!
以下是《计算单位阶跃响应的上升时间》的部分源程序:
3 r& [4 A, ^. p- V1 n2 [$ }2 Q
4 M+ b9 M4 y- d3 m$ g0 g% @8 k
# include <stdio.h>
6 w& O1 ?6 F. q. e& @' x2 t0 q
# include <malloc.h>
& Q8 D g) _3 L: W2 `# }1 ^8 Q
# include <stdlib.h>
. ?, J) U8 a$ E" E: Z4 ~
& X; Q+ i7 l0 ~" g+ f, R1 T
/*
9 r. ]( m$ e0 @+ r, i7 g$ _
** delta---抽样时间间隔;tr---响应的上升时间;n---抽样数;f(i)---抽样数组。
7 k( N6 ]4 w3 Y! H) X$ S) T @
*/
z c, A# q3 A! B; o
, i! y! g' ^' [5 w, d% z
void get_data(float * pf, int n);
$ W1 k3 Q; k Q6 O' F% K
int main(void)
/ ?+ u2 H* }: R' n
{
( q4 t; w% Q2 n% |8 @ f& w$ ?
int i;
/ N) W$ S$ W5 K1 b9 s
int n;
* Q4 \0 |+ y; W f$ f* K
float delta;
/ O0 m8 B( _" q, K, M
float * pf = NULL;
. u+ W; X+ r) O
: E8 H* ~8 N$ d. S( o
printf( "请如入抽样数: n = " );
, {! W' ^$ y5 A8 E" x0 Z
scanf( "%d", &n );
- h% n2 i/ h) F* N m. Q
printf( "请输入抽样时间间隔: delta = " );
: f! g6 I, {1 o1 P% H
scanf( "%f", &delta );
_) S" r9 m5 m4 ]8 z
printf( "请输入抽样数组: f(i)\n" );
9 q7 F6 a0 i0 }9 o
* e D3 ?- j6 R7 u
pf = ( float * )malloc( n * sizeof(float) );
1 m( N4 t. K8 B
* I* q- j, J) ~" x! X
if (NULL == pf)
" ^! m' @! j0 }4 A' A O
{
) m0 @/ m0 p( O
printf( "动态内存分配失败!\n" );
" r% G3 T5 J* I2 L' o1 v' m0 x
exit(-1);
3 z) f. D- d7 O$ R
}
8 [' m9 F9 y F; W; X) q8 R
: e6 G# ~ Q4 G {
get_data(pf, n);
, w ~6 H" G) q: ~
; W4 [$ }! V. v" S
// 数据输出
( ]$ d; H7 L: v' \# k
for(i=0; i<n; ++i)
2 |7 ?0 h2 A5 K$ X4 x6 O
printf("f(%d) = %f\n", i+1, pf
);
6 r5 C) F4 S, D. R
4 k5 }, ^8 z" W2 P+ X
return 0;
( Y1 J! X; y) D
}
* B$ t& a9 X: X y, A. o8 G4 S
3 r4 X0 H; D- Z! g& Y
void get_data(float * pf, int n)
y1 F& B3 o' _- r- C8 y
{
+ f' B& O- o! @, |$ y+ {: ]
int i;
( Q% ~) X0 g- ~) a1 v
- d7 @# X7 ?8 Z# S
for ( i=0; i<n; ++i)
- ?0 ]. m# W/ c) w7 J, n6 r' |
{
8 x0 f8 @. j! S6 e% u, T6 a% L* n- E9 c
printf( "f(%d) = ", i+1 );
/ z1 }% C# d |- p8 Q
scanf( "%f\n", &pf
);
. a0 t. Q$ r& a# S3 R' n
}
8 o2 u( \/ _7 d% p0 T! V0 k6 {
}
8 g) ~: m/ J$ L. ^7 o% o: K
& {. {1 b, k* C
在敲完 void get_data(float * pf, int n) 函数时测试输出f(i)时出了问题,打印为:
) { i0 Y" }% t+ F- n& G0 V, | O' E# E
0 x% [- x$ o9 n, `/ Y5 A- }
" R3 P4 L z; T8 R7 S' h3 m' V
( E7 \- K; h M7 P# {6 {* d
* v/ ~; F. ]$ F. ?
想了很久,还是想不通!
作者:
许凯
时间:
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 编辑
4 [( b7 D9 j+ V9 D2 a1 g& r- D
/*output data*/
8 h- k1 f4 Y" {) q; q
for(i=0; i<n; ++i)
% g1 w" A# d3 X( T
{
) U- S4 [% Q- H5 p' e+ e
printf("f(%d) = %f\n", i+1, *pf++);
7 L% K8 l3 O* s& T
}
1 }" o" \, K- x+ i' i
/*input data*/
1 p9 H+ Y# L$ S# N
void get_data(float* pf, int n)
7 R( O* I5 }# ^0 e' n0 P# C
{
) {7 o0 _/ F# }: g" N) w
int i;
% ]* N: A4 d* s$ _" p. l
6 c! m7 E0 E# s! C9 x$ n
for ( i=0; i<n; ++i)
- u8 z$ M9 o3 ~2 |6 \8 F5 q5 ?
{
! o( I( z4 m u' _, G6 B) t
printf( "f(%d) = \n", i+1 );
' j( s: d' e2 d6 V. R8 Y1 S
scanf( "%f", pf++ );
: j4 E/ _: }( _& k
}
# c2 Z) Y1 A: [# q$ M2 Y5 k1 t, h* r4 x P
}
复制代码
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5