数学建模社区-数学中国
标题:
C菜鸟跪求求高手指教!!!
[打印本页]
作者:
许凯
时间:
2012-2-25 13:50
标题:
C菜鸟跪求求高手指教!!!
以下是《计算单位阶跃响应的上升时间》的部分源程序:
a7 {6 d7 V8 p+ y n4 E. Y
7 g3 b9 f' }. i, j* r
# include <stdio.h>
1 S+ G$ X9 W& {; f& V2 q& T8 {
# include <malloc.h>
* z F6 q" S5 F# X. a0 p# {
# include <stdlib.h>
N, j, `$ O- l) L9 D; p
: l( |4 J& H4 P T( r, ~
/*
" L7 Q E* u4 q6 g/ F& }
** delta---抽样时间间隔;tr---响应的上升时间;n---抽样数;f(i)---抽样数组。
$ _/ R/ r/ F- f7 O0 y6 z& s* X
*/
: W( |" a$ X4 r1 i
0 E8 e$ h8 B9 B' B+ F0 o6 ]
void get_data(float * pf, int n);
0 n8 ?' k7 I# q/ z
int main(void)
8 A$ b( G2 _. C3 u/ i: X
{
% \/ J4 A, D9 v1 [
int i;
5 \$ ]! o/ M% [5 b: X
int n;
: g, R; Z+ d4 u- |0 ^6 T6 B' U# U
float delta;
0 d- p8 s7 i; P) |1 }2 Q9 \
float * pf = NULL;
+ R3 E3 L( g, d# n4 v8 m
9 O+ }( m ]( w2 f2 S$ Q
printf( "请如入抽样数: n = " );
% x' n5 Q, U3 o7 M
scanf( "%d", &n );
. C) n2 P2 i9 A) ~
printf( "请输入抽样时间间隔: delta = " );
- q3 ^4 y, q8 a1 z3 |. e- G" @2 k
scanf( "%f", &delta );
+ ]9 u" m8 O$ Z5 @; m {
printf( "请输入抽样数组: f(i)\n" );
, K: `* h8 Y. C m0 `, m0 Y
! l! I3 _! E, X
pf = ( float * )malloc( n * sizeof(float) );
6 C' D4 I+ L- \" B
" E$ c7 U. v( j" @* V: k
if (NULL == pf)
; Q% \& T7 }8 T% H0 z" Q! P) I/ a) ]
{
5 O- y e# p3 O* K v. N1 |
printf( "动态内存分配失败!\n" );
; x# H" v# J- J. l+ r2 H) y
exit(-1);
8 u0 q% Q4 T7 F1 H6 N$ ^9 R( V) u
}
% c) X+ {' Z* A0 [; l! z+ s. \
3 j6 t- Y( D6 I5 b: a
get_data(pf, n);
+ r# y$ ]" j- }6 l
% a& J6 p5 I9 L# R W$ d" k
// 数据输出
9 W! V! g: d" f2 D a
for(i=0; i<n; ++i)
$ n; {( K8 m5 N( r* @
printf("f(%d) = %f\n", i+1, pf
);
7 Q6 S3 i. J/ O. u
. \$ s# f( m5 c$ n* S% K ?
return 0;
) {4 r" n$ |4 [( @8 s* z, p$ b" w& J
}
2 O* P2 b. N i
+ e, B' N- d- G. E: L
void get_data(float * pf, int n)
& D/ v2 `1 ^% p6 A
{
: F7 h$ Q% W) Y6 M3 t- m) }
int i;
( \* y% o3 Y7 m( I1 t4 v6 r
& f6 B, s% Q) p2 ^6 J5 U4 y, d5 Z
for ( i=0; i<n; ++i)
5 B" j7 }2 i3 y
{
4 D( N+ m+ Z y: d+ ]! L& `% b
printf( "f(%d) = ", i+1 );
3 L' u% q' |: u0 f6 [6 d* G6 y
scanf( "%f\n", &pf
);
/ E/ y. Q3 j: n- N6 p6 _
}
; w7 d5 a% e1 S& n1 Z. d; W
}
+ \3 I: U8 y5 l7 T: O7 ^
, ^2 G5 @# q) T* h0 c' F
在敲完 void get_data(float * pf, int n) 函数时测试输出f(i)时出了问题,打印为:
9 F& {+ q3 c) g5 v
+ _) C) ?' `1 n" v) ~4 P
1 H9 U2 t& d0 B! @2 B
2 T6 f r- x( D! j4 l s; W
' X0 R' N& }, S( ]. k& v4 _2 Q
想了很久,还是想不通!
作者:
许凯
时间:
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 编辑
( h, o, T8 |: G' a5 I: {
/*output data*/
+ [; ]9 M: R- c" r2 v
for(i=0; i<n; ++i)
+ s# B1 A8 s% |; V. \
{
: O! u6 T, T4 Q& A2 B6 W
printf("f(%d) = %f\n", i+1, *pf++);
' g! _' o# U8 J5 f
}
" i. G9 T4 o i
/*input data*/
8 _. f" u3 Y v
void get_data(float* pf, int n)
! b2 d9 o: `0 J1 P* |- a
{
$ l' T0 u* p1 g; Y# w. Q3 p
int i;
* q3 k Y: X+ X2 T9 w
9 I1 V1 K; Z0 n" @9 O
for ( i=0; i<n; ++i)
1 ]* @+ o5 V! G; d L2 E1 a
{
" N/ n% q1 R* A5 ]& J2 a
printf( "f(%d) = \n", i+1 );
$ |$ g6 ] }+ r7 m
scanf( "%f", pf++ );
: [: A9 j! v- u% F
}
- l6 x. j7 ~$ R$ P* L# X
}
复制代码
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5