|
- #include <stdio.h>
' A f% e3 \7 x! ?( O! b - #include <math.h>' U. c0 s7 p2 ?1 }( q, L
- #define e0 1.6e-195 r2 _5 Z. c' K2 B$ p) O+ |- h
- int main()
2 S" V3 z5 K4 K/ w- u& |0 C - {
3 L# g) c' Y3 I7 U, O1 L7 p2 n H% p - int h,i,j,b,c,d=0,m=0,k=0;$ _ N) k( j; f+ O5 u; K1 d( r
- float q[100][100],u[100][100],t[100][100],a[100],n[100],E,x=0,y=0;, F4 r4 i) r- L9 Y% S: k
- double e;
2 M! n, q# m0 s) k - printf("请输入测量的油滴个数\n");4 F- c, O6 M0 D- C
- scanf("%d",&b);
; W" N2 z3 G- N: i! W$ _3 } - printf("请输入每个油滴测了几次\n");7 _% P: e3 ?6 c
- scanf("%d",&c);: v( K5 d8 y; G: D/ f6 A1 F" i2 }
- printf("请从第一滴油滴开始,按照\n电压 对应时间 电压 对应时间,填写数据。\n");
8 t+ a D7 I% X7 _3 B: o - for(i=0;i<b;++i)
8 [8 e7 n% z l, W0 L# D - {
3 \! h% i* b/ } D) k6 j6 N; h- | - for(j=0;j<c;++j)1 V7 \' K5 h/ F4 D
- {
+ M! l8 P) c, } - scanf("%f",&u[i][j]);2 U0 t6 C% y. W
- scanf("%f",&t[i][j]);
" }0 d1 u, |4 q9 o - }' G) d; T7 z" ^( |9 A t$ N& r8 H; W8 O
- }/ ?, I, r! M, `3 @4 G
- //至此赋值完成。开始计算q[i][j]并判断。
# v/ { u# {0 T- ^! t4 Q: ^7 b: w - for(i=0;i<b;++i)+ T) I& n, T, a; _
- {
. t( P8 ?" w% M( ^: x - for(j=0;j<c;++j); W' D/ c' }; n4 \3 _* p
- {
6 B/ m% R. ]" ?6 _ - q[i][j]=1.43/pow(10,14)/pow((t[i][j]*(1+0.02*pow(t[i][j],0.5))),1.5)/u[i][j];
2 b' D0 }& [# }5 | - if(q[i][j]<10*e0&&q[i][j]>=e0) d=d+1;$ f1 ?$ h/ G6 x* `9 ?
- else: Z( [) o8 b: \2 d3 t
- {
3 `% X! x, M/ \# q5 I5 ] - printf("q[%d][%d]是无效数据\n",i,j);
! E9 b! |+ ]" Q+ S. J0 s( L - q[i][j]=0;% ]" [, Y! ~. }" @% y
- }$ A% ~4 C# G1 c6 F! `
- printf("q[%d][%d]=%.3g C\n",i,j,q[i][j]);
9 q3 ~" |/ i3 \. t+ P5 g - }
( A% J b; l9 d' X4 a - }( b) r3 ~: Y0 c& O/ Q# _0 r( t
- //q[i][j]计算完成。开始计算q[i]。
# p0 j5 X5 ~, L3 |9 Y/ R - printf("请在纸上记录所有q[i][j],并按顺序重新输入。\n");% X2 d0 E/ i* U& m% n3 h* a% Y
- for(i=0;i<b;++i)
5 e! e2 Z, j" _ - {$ t) z1 U0 x+ K2 i2 P5 g6 ?' ~
- for(j=0;j<c;++j)% \' u& m9 A0 p" C) j/ ~: O
- {+ E2 `5 ] ^: j3 Q
- scanf("%f",&q[i][j]);
& m6 F1 \4 H/ P8 G - }, Y0 d. w; W$ W( F+ {( V4 J8 \
- }
4 n- r U- z8 @% V. p% z5 M - for(i=0;i<b;++i)4 d' R7 o" a: U
- {
+ |. P! x% S: t* J - for(j=0;j<c;++j)
. g3 k l+ @/ f/ l - {' S' D, V/ A1 S6 o n. |
- if(q[i][j]==0) m=m+1;
1 I* x+ B! ?9 u. { - a[i]=a[i]+q[i][j]; J/ d0 |0 C% Z6 Q3 _& U
- }
/ F3 u8 ]/ C: c - }
. c' Y, V6 c, `: F - for(i=0;i<b;++i)
; [$ m. O; B5 G+ X! w - {
+ s9 t& N7 N+ t# H - a[i]=a[i]/(c-m);. m( X- d1 s7 j2 }; S
- printf("q[%d]=%.3g C\n",i,a[i]);
1 @+ E' c+ w) m" S - }; x7 ] ^- _: q; Z$ W
- if(c-m<3)
' x+ H2 ~/ l3 ?) { - {
7 Y" ^: E' B+ a% ~5 _ - a[i]=0;) ?) p. a- \- W0 U+ h8 {9 b* ]
- k=k+1;
3 r+ K9 c+ r% M - }
, E# Y4 a- u/ t( |" k - if((b-k)<4)//判断有效油滴数(有效油滴电荷个数)
$ U+ G- L- z$ s' b- J) G6 z$ ~5 S - {. i: G! \% r# Q
- printf("因有效油滴数据数量不足4,无法得出准确结果。\n");0 g8 s+ ]/ S! r; _* N
- } x4 b0 J9 S; d0 |. a7 U
- else# B. w4 I* S" ~
- {
+ d" E6 }! n* t1 X - //q[i]计算完成,开始计算n[i]。! Y( u7 @3 X3 p& B: ^4 U4 G
- printf("请在纸上记录所有q[i],并按顺序重新输入。\n");
( z q; U9 V- n) u1 O# e ] - for(i=0;i<b;++i)& I) ]8 }- a) C- t6 @2 P
- {1 e& q* Z2 G Q4 i& I
- scanf("%f",&a[i]);
* m! b' ?5 `! F: d3 ?1 s; E - }$ U) B) k! C6 `8 A
- for(i=0;i<b;++i)8 E! B$ [- c$ H; A. |8 \% y+ o9 M
- {4 n5 d6 Z3 M1 _! M N" o
- n[i]=(a[i]/e0);+ {4 C" H* E& _8 M; Z
- printf("n[%d]=%.1g (无单位)\n",i,n[i]);: y; j: {% p* y' t
- }
+ j! x& s5 r' j: Y+ N - //n[i]计算完成,开始计算e和E。/ D2 R: q1 _; K6 g& f
- printf("请在纸上记录所有n[i],并按顺序重新输入。\n");
6 `8 B$ ?% P% Q( c- x - for(i=0;i<b;++i)- r2 z3 i5 R6 q" B5 }
- {
+ U1 w+ v, K9 }9 t( p& {+ n* F - scanf("%f",&n[i]);
) f1 t6 n% o2 n- g1 | - }
% Q7 @$ Z, O3 o - for(i=0;i<b;++i)
* {) G" C$ y' c/ c. R( R - {! j e/ j/ V! ]' q- D) X
- x=x+n[i]*a[i];0 h& A- }9 V' X* C! r
- y=y+n[i]*n[i];% m: m0 _! _) p
- }
0 l5 T5 r+ P2 W& q6 h' m4 S - e=x/y;, x' b6 V$ y* ~' v- m1 t! {. N
- printf("e=%.3g C\n请在纸上记录e,并重新输入。",e);
( f4 P: `8 Z2 v1 h' C0 p7 S - scanf("%f",&e);
2 x+ n; {8 v4 I - if(e>=e0) E=(e-e0)/e0;
; @" q, C& {9 \% x- t - else E=(e0-e)/e0;
7 [+ ?. \% @5 m - printf("E=%.2g (无单位)\n",E);
" ^1 U5 W5 l4 x, R; }2 r4 e - }
" L: B+ Q. C+ K) A6 B9 g - return 0;
5 M4 A0 V6 N$ E" H+ H8 U, a - }
复制代码 |
|