数学建模社区-数学中国
标题:
C菜鸟跪求求高手指教!!!
[打印本页]
作者:
许凯
时间:
2012-2-25 13:50
标题:
C菜鸟跪求求高手指教!!!
以下是《计算单位阶跃响应的上升时间》的部分源程序:
- Z( E0 a$ K5 S5 L t0 }$ t
( t3 u# j5 q5 w8 J7 f& J- w
# include <stdio.h>
# |& B& I# ] G( R D$ `: X
# include <malloc.h>
- ^( ]* D1 k+ n* M! ~
# include <stdlib.h>
7 {2 v- K& u) y0 x7 H
+ ?* [- ?: V. B. v# F
/*
6 {8 L6 P3 h* G( h
** delta---抽样时间间隔;tr---响应的上升时间;n---抽样数;f(i)---抽样数组。
9 y. r; g9 s* s. T4 p/ U3 J
*/
" @. G8 t" [( D) \" w! I
7 d, p9 \5 Z; R4 z
void get_data(float * pf, int n);
9 |. d( c& m5 _" i
int main(void)
1 [6 }. I& l# z1 n5 |
{
9 y e2 p" M2 ]4 B7 y7 X( X* D
int i;
3 V/ w) g$ v ]* ?& m
int n;
3 _0 D- I4 o* s, y Z# e) ~( R
float delta;
: R+ f: ]! z! D8 w3 ^1 H
float * pf = NULL;
( ?6 R: T3 M, G- ?
+ g$ I/ p% c! p0 H0 `
printf( "请如入抽样数: n = " );
5 r! _8 c5 `& u8 W; |7 k
scanf( "%d", &n );
* M" A* l) M; b; W
printf( "请输入抽样时间间隔: delta = " );
8 Q7 [) {* n- i5 Y S& o
scanf( "%f", &delta );
% r, M7 D$ t, O0 G$ H
printf( "请输入抽样数组: f(i)\n" );
- L, j& b7 H3 n1 x/ x7 f
8 t/ g- j' q" x g
pf = ( float * )malloc( n * sizeof(float) );
- B/ O+ t1 P: {( _! s* J' p
1 [2 n) k5 p# j+ N9 H
if (NULL == pf)
5 F$ m& l( H. X0 Q$ {9 |( ~) Q$ M# M
{
Y0 ^ {+ q9 {3 C6 l9 p6 {
printf( "动态内存分配失败!\n" );
9 J' [5 U- a1 Q; r
exit(-1);
4 s+ H( D0 }& Z
}
6 a1 P1 R; o0 G: U1 p) g
8 t8 U, |6 N$ |
get_data(pf, n);
! n7 l8 g1 d% r& \; l5 ^6 Y
8 y/ y6 H7 D) Y5 A
// 数据输出
, ^" Q- {, p1 J2 F+ Q" L$ _' c+ l
for(i=0; i<n; ++i)
/ p3 K7 k' L' Q* S" u7 T& S8 G
printf("f(%d) = %f\n", i+1, pf
);
G' a( _: X; B1 q
+ f8 \1 o3 o2 a; L) [( o# m% Z
return 0;
! O1 l. Y9 o# ^; A1 K( E
}
' f4 p, b+ f; Z1 W. V
) o9 T, p3 t7 O+ y5 I' g/ X
void get_data(float * pf, int n)
1 g# V, ?0 F- ~# V5 r3 m8 ^6 N4 I7 d
{
" m, v- S. f) U' }- b5 p( {, _; _
int i;
2 q5 I7 R7 r. n
( b# X2 n2 W/ A
for ( i=0; i<n; ++i)
3 A: n4 `1 @) C2 w( l D
{
: {+ j" w0 v' v5 q: J$ M6 m
printf( "f(%d) = ", i+1 );
) w1 H3 J$ _5 N$ a3 z; V
scanf( "%f\n", &pf
);
3 I0 z4 _! A- i/ R. q7 x2 d0 {* S
}
/ h N* V- g! d3 x6 R; r: e
}
- A- b5 b$ o$ Y: `" L& b" V! \3 F
3 L0 S8 w5 T; v" ~3 W$ B
在敲完 void get_data(float * pf, int n) 函数时测试输出f(i)时出了问题,打印为:
$ _7 ^+ m3 C; U& ]/ y
8 U9 L% z, R1 G" s+ Z
& M8 U" W! \2 i9 [
- k2 b3 {+ J% A" H7 L
+ ~/ ^4 e* n* x( d- X# ^: \! u
想了很久,还是想不通!
作者:
许凯
时间:
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 {2 G* ?* M& `
/*output data*/
$ P" ~1 w) b0 B8 \
for(i=0; i<n; ++i)
# g; r9 o+ \* c& B3 p' b7 B
{
* f/ L% K$ H3 j' m8 Q" [9 [% W% {- W
printf("f(%d) = %f\n", i+1, *pf++);
* X" @4 V& ?+ K# l- l, z
}
6 O" @5 E/ e8 g5 c; C' i
/*input data*/
- Y# O9 B7 B" C# A( V3 h
void get_data(float* pf, int n)
4 b. r; Q4 {' J3 \% V; ^
{
8 Q) w, J, g* p# m6 O
int i;
2 Z2 X# g+ w8 r
- V. p5 X' \) m; Y3 y6 u
for ( i=0; i<n; ++i)
' E5 j6 t; X" h4 E( c2 P$ d
{
8 R, I6 b- _ {- i- M8 ~, T+ q
printf( "f(%d) = \n", i+1 );
; b# x+ n4 H# M7 e0 P' j
scanf( "%f", pf++ );
) [! A7 A5 Z- J) O9 o6 r: I
}
. L7 D7 F1 ?2 Y+ G; i8 i4 P
}
复制代码
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5