数学建模社区-数学中国
标题:
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& J
void get_data(float * pf, int n);
. y) g6 [/ v5 v3 h# e5 d
int 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
/*output data*/
3 A5 F# G& \+ A" j% {& A" p
for(i=0; i<n; ++i)
1 a Q+ z+ E+ h1 z% t! [# [6 J+ |) n% @
{
4 W. Z8 d+ o( t2 b* }, }( h5 b1 {/ e
printf("f(%d) = %f\n", i+1, *pf++);
p" ^5 [1 R- q" P9 e2 L# a& K
}
f+ `4 L7 I; G) ^( x9 k
/*input data*/
, {) T/ r! x+ d" w( }; @2 J
void get_data(float* pf, int n)
4 D( u1 B! H5 m9 F: z
{
* q- W6 p) S# _$ i ]
int i;
7 B% j1 ?; [! {2 K' ]
, `+ Y4 y5 G6 f' L- H
for ( i=0; i<n; ++i)
8 M4 X* Y7 t4 @' t
{
$ {* S$ `1 G( {6 w
printf( "f(%d) = \n", i+1 );
" V0 ]& p0 `6 k" ]+ Z, Y0 T% \
scanf( "%f", pf++ );
2 S) ~* Z2 {$ A4 p
}
! z7 [9 b' ]* N @0 N; H
}
复制代码
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5