找回密码
 注册
关于网站域名变更的通知
查看: 563|回复: 1
打印 上一主题 下一主题

C语言必须要记住的18个经典程序

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-9-11 16:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
  1、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。" X$ w1 E" n9 t8 C, e
  程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
& v4 Q1 ^8 @' Y) h  则表明此数不是素数,反之是素数。*/5 C7 ~* Y0 }9 y  C; @- z1 ]; K3 P
  1.   #include "math.h"
    , m2 ~+ e, f1 j  E" Q5 U! P

  2. 9 e$ X: F5 x0 K0 n
  3.   main()
    ! H+ l" Z4 m5 {9 X

  4. 5 K/ S3 }3 Z: H1 X! _% U  g
  5.   {
    - t: f" h% W3 K% P

  6. ! i( \" j( U. w5 n1 L" O
  7.   intm,i,k,h=0,leap=1;
    8 K" `" i. W' H, d7 p; f

  8. ' w3 H- g! t) A" [6 G
  9.   printf("\n");; E# V  D' v) T% C/ c/ ^

  10. ; j" Y3 F! |6 r& z
  11.   for(m=101;m<=200;m++)
    0 b4 @8 d2 d! A! U1 i$ I$ H
  12. . Q- g5 h; u& a7 ]4 Y, s- W  g( O  P
  13.   {k=sqrt(m+1);
    3 x6 C% a% `5 s- g

  14. 6 W* ~/ ]3 Q5 P1 U8 ^
  15.   for(i=2;i<=k;i++)  @1 S2 D6 f0 t& D& {
  16. % }2 Y) G/ Y# e- G7 A7 h' D) J
  17.   IF(m%i==0)7 |8 W9 b( ^( z- }9 a7 d' m9 }
  18. * ?6 o# I, Y9 |0 A5 ^9 j6 h
  19.   {leap=0;break;}9 b& w) Z8 E) ^' i- k% N; N# V
  20. ! i0 ^" Z% J3 b. W
  21.   if(leap) /*内循环结束后,leap依然为1,则m是素数*/
    / @5 N" S6 D$ ]2 O; H% W0 N
  22. : J/ D1 |+ v, }9 n2 v
  23.   {printf("%-4d",m);h++;
    ' e, l% b+ O7 w. T# P7 w, `8 }
  24. ) y. H: a# V: i6 l! {) e! C
  25.   if(h%10==0)6 j; x' M: c  A! N

  26. 4 V/ U# m1 A/ ~! J2 ~( P
  27.   printf("\n");& E1 S, E( k$ `9 `8 G9 x
  28. / a5 M9 c( O& o7 C9 B2 b
  29.   }
    . ]3 H& ?6 H' N

  30. ) v. |# D( l) f) s; U
  31.   leap=1;9 o* A, {/ W: x
  32. " @. C4 K& D7 @; f) M
  33.   }
    ( D: N) p: d3 E. t/ `

  34. 6 q  s& D  A% H
  35.   printf("\nThetotal is %d",h);: ~. ^/ ~( J9 }& S" m3 L0 N4 A
  36. / m) l5 t. X8 S+ j4 @4 P5 g
  37.   }
复制代码

1 `6 K( U6 c. [$ t1 a  2、/*完善程序,实现将输入的字符串反序输出,9 ~' \. Y6 B7 V
  如输入windows 输出swodniw。*/
/ o" P- v. Q% r2 q
  1.   #include( i$ m, u$ w8 c# w
  2. ( i$ D& g; \9 B( j1 `$ e
  3.   main()
    ) p  H) W: u( P+ a5 G
  4. 0 p+ B6 U2 H4 w0 j- {/ ~' n
  5.   { char c[200],c1;
    8 `4 f/ X6 G! ]0 g& j) P

  6. ) n5 T+ n5 \9 i. h5 E! q$ l- }
  7.   int i,j,k;
    ; h9 f- Y# J" ^7 K1 G; P: i

  8. / v" |* \+ e" t  @
  9.   printf("Enter a string: ");8 Q& n8 O, g7 C2 f

  10. 3 {- v3 j$ i$ v; H  l
  11.   scanf("%s",c);3 L4 ]1 e: Y9 V) o. N  j
  12. " _5 B8 W, `, z( D8 h
  13.   k=strlen(c);9 ?  h% j6 m, G0 j: T
  14. % T' L. h+ A; B" e6 Q1 e; s
  15.   for (i=0,j=k-1;i. s! y9 K" A* S! z$ [; k7 ^* `+ C% f# v
  16. ) X0 d& K3 R1 o" c) g' X* f
  17.   { c1=c[i];c[i]=c[j];c[j]=c1; }
    5 I  |: R( R% N6 }! m" n6 z

  18. % R/ A+ f: h2 [* {# s
  19.   printf("%s\n",c);
    & A, }+ C9 x) `' Y$ a. l7 s8 p
  20. " v& N3 O6 I: }8 i- B4 u
  21.   }
复制代码

7 t/ }- @0 v2 q- {5 W# C  指针法:
7 r7 e" {: v* f
$ x: ^8 M9 {, c; V( ^5 T
  1. void invert(char *s)% S1 @7 w% ]% _' @
  2. + N" F" D1 B3 I
  3.   {int i,j,k;# q- q' S# @( T. H# F1 b" m
  4. % o$ I* Z: V: ]% C  q
  5.   char t;* `9 [3 w( u' s, t% i" Z
  6. . g5 M7 ]5 P: Z  I
  7.   k=strlen(s);
    : h- i! \. A5 }: v6 `  r# f* A$ i6 C

  8. 0 E, G3 p7 L% u# `6 @% M
  9.   for(i=0,j=k-1;i
    6 `( J9 }: ^$ w2 j  J/ w6 `

  10. 7 f' J( i6 p9 L* w% [/ ~
  11.   { t=*(s+i); *(s+i)=*(s+j); *(s+j)=t; }
    ( ?' {0 O: Y8 @. W, c5 J5 {) i

  12. . H. U# i% W9 \
  13.   }9 [* e. G8 c6 p$ q
  14. : {6 E* @! S4 t& A' z
  15.   main()
    1 X, ~! \, D, C# m; K

  16. 6 L, H" `- v6 y) t. y
  17.   {FILE *fp;. S. X/ E5 J# J! e9 Y
  18. ! y% W* k. j) B1 R
  19.   char str[200],*p,i,j;
    2 J- E7 E  P/ Z: O1 h; R; N$ ]; `

  20. 9 L9 \# s" e2 x
  21.   if((fp=fopen("p9_2.out","w"))==NULL)8 @" Z# G' p4 b& f" T/ M$ Y% g
  22.   C; D$ J3 t: ^7 o% l+ W( p# ~
  23.   { printf("cannot open thefile\n");
    . ]* K# T- `1 s. f' q- H& l9 u

  24. : T8 e" H0 d* o; u* ^4 V
  25.   exit(0);$ N4 C8 C6 Z7 h# q7 `
  26. ; d9 l# a* U7 j' T
  27.   }& |' L) A. j) f2 T- _; q: h" N! h

  28. # K' Z+ Y7 C- F+ c: Z% C7 V
  29.   printf("input str:\n");9 ~. Z* M7 z* j# r" V  Q% s, F

  30. % ?3 U& `: l; c4 p
  31.   gets(str);
    " D% r; J6 f1 d- |5 a' n5 ?. |
  32. . V+ C9 \3 n/ s7 Y/ B2 [7 d
  33.   printf(“\n%s”,str);$ W' H" x( {  j7 G; w; D) v

  34. 0 P3 ]1 ]+ I) u; Q, T. D/ b
  35.   fprintf(fp,“%s”,str);
    + c1 g3 c/ X9 q+ P
  36. 7 f$ K1 M, Y  l: w( O
  37.   invert(str);
    4 h; o6 T; P+ }

  38. 1 y4 c. V* F6 \* W
  39.   printf(“\n%s”,str);; @4 ]/ N" Z3 J1 Q
  40. ) d' H; s$ r2 Q! Y* \
  41.   fprintf(fp,“\n%s”,str);
    $ K( t4 I3 m3 k6 k

  42. * Y" d1 _/ A' p9 h" s% j
  43.   fclose(fp);
    ' N1 A* |# E$ f8 w
  44. ) o) T. n1 N" a) F" |8 w/ O6 n
  45.   }
复制代码
9 ]) K; ?6 o5 g$ H* y
  3、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程2 N( h9 ~9 D  Y& D6 X6 f4 z, C
  找出1000以内的所有完数。*/) M& V2 h: h0 E/ O# P

& R8 W6 @" c; f- M6 t! q
  1.  main()
    - a, _3 R' v" z' A9 A& `& a4 ?& Y5 x* s
  2. & F; s0 B8 p0 _8 o- Q3 s! H% C
  3.   {/ ]7 t9 f' N/ V) C  P% E; X

  4. ) b1 {/ L& ]- o' ?. q# W+ p
  5.   static int k[10];
    % U/ j) f7 N2 x! a: j9 }% _
  6. ' c% q- l3 ^1 u; i4 s) a* T
  7.   inti,j,n,s;
    . o  k0 @* _2 Q4 f9 n

  8. 1 k% @- ^0 V! ^9 M  m) h6 V
  9.   for(j=2;j<1000;j++)
    1 L' ?9 u- v, M) L! W

  10. 1 X4 N3 ]1 C6 V9 \: b) F
  11.   {
    3 m7 x( y. F7 S5 S1 `. k5 ~6 s

  12. 6 u8 Z  T8 c7 g" b) d1 R3 v  o4 {
  13.   n=-1;
    9 C# y* G6 P( o3 q' {  m9 @
  14. 7 y1 s' R( @% v0 j9 u
  15.   s=j;6 g! ^; f6 X1 f. o' h6 U

  16. 2 I& y8 _! `6 N: ~9 e* s+ B
  17.   for(i=1;i
    ) ^' b# E4 |2 @6 _5 [! M

  18. " I2 @! g6 c* y) k
  19.   {if((j%i)==0)
    1 X: N8 l& M- U% a8 U0 s

  20. 1 v" E( n8 e' `2 F) W0 @( }
  21.   { n++;9 x% u) i5 I4 }  \. a( J
  22. " i& P2 H# R4 ]+ j& o
  23.   s=s-i;  G6 P' n/ |* l2 B' u

  24. 7 ^% U3 Q2 T9 j
  25.   k[n]=i;
    4 X2 w. G8 d1 L. h

  26. $ s8 b$ r7 r' `0 r. x
  27.   }
    ( |2 Z; {) H( j; f+ M3 h
  28. 4 F% a9 z8 X8 b" [* V
  29.   }% ~2 z7 g3 w7 p& ~+ Z0 L. i
  30. & s. P1 s% w% M3 p0 u
  31.   if(s==0); I0 e: V2 v- e9 [: T$ W
  32. ( h4 _! Y$ S; w& a
  33.   {printf("%d is a wanshu: ",j);( v) W, E$ D* L3 z
  34. 3 q5 }$ {7 D: W) |! h9 N: g
  35.   for(i=0;i
    5 T8 A" k% K3 u- r
  36. 9 V2 M( w4 C  q" B1 T* U6 s
  37.   printf("%d,",k[i]);0 g, \3 R0 D3 g; ^, {
  38. 6 l' \/ r- X% v9 R: [5 g
  39.   printf("%d\n",k[n]);& ]& b4 \8 n; Y) G# g# `! P1 |
  40. 5 p1 q2 I& c5 ]- Z6 i( {: u$ e3 V& a9 [
  41.   }
    % N" m4 {) i- @' b6 s  O
  42. ( I4 O0 k1 O" Q0 m/ J& D
  43.   }- z/ f; B3 s! q: p- @0 ]
  44. 1 t" _$ U: Z; E6 r( @+ z# F( p
  45.   }
复制代码
% l# }: O$ n' g" D- X
  4、/*下面程序的功能是将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的数据随机输入,新数组以4行4列的方式输出,! I( w: ~' d+ L6 k$ H% `& ]
  请在空白处完善程序。*/
" e8 q0 O, U" b/ V# o" t: @" l' I  T) |! v; U5 `
  1.  main()$ `* f0 `2 [8 c% i- K8 P' r

  2. / P6 w' @1 [& q1 W
  3.   { int a[4][4],b[4][4],i,j; /*a存放原始数组数据,b存放旋转后数组数据*/
    ) j- {+ g% |/ r9 k. b, E" y

  4. # Y5 i) v- W. ^
  5.   printf("input 16 numbers: ");
    ( {- A, r6 D5 }+ g
  6. - b8 E# u# _1 R! Z; @' u0 I; D
  7.   /*输入一组数据存放到数组a中,然后旋转存放到b数组中*/
    9 s) o- g3 \* k% ]" N$ @1 ~8 L

  8. 1 y- V, D. d7 ~8 P1 s
  9.   for(i=0;i<4;i++)
    * T7 J" C! G3 O' J

  10. 6 G0 W$ ~( j+ |- E5 G% l- U
  11.   for(j=0;j<4;j++)
    - X0 E: L. p  d

  12. % r( E2 T  W5 v* M( r2 c+ O
  13.   { scanf("%d",&a[i][j]);9 m$ P8 O- a4 _( P' X) s

  14. 6 X8 N: q: y/ \( }' t
  15.   b[3-j][i]=a[i][j];
    ! V. v- Y9 t1 m; z* A

  16.   o9 Y) q6 ]+ ]9 }3 H2 L! n- C0 c
  17.   }$ |! h% e# O# @: g( ?! H* r0 _. V
  18. 1 w# X7 J/ r$ C, U
  19.   printf("arrayb:\n");! z  \% N9 H' H5 s
  20. 3 S! b  z/ F) w1 R  C" H
  21.   for(i=0;i<4;i++)& j# R1 `; _5 d- V1 c

  22. - t. h" {( o- Q, ?, _
  23.   { for(j=0;j<4;j++), }0 A' R5 L/ N4 t
  24. 5 D2 E/ m( {1 r: I# V& I6 ?) a3 ?
  25.   printf("%6d",b[i][j]);# P: c/ ?+ h% U% ^( n

  26. % v3 U9 y* y; G. G
  27.   printf("\n");
    ) E5 b8 C# X8 X" T% x# K  U

  28. 2 L7 \5 j; L, y, V* U7 c! h
  29.   }
    , E. \/ `3 V4 W1 b- U5 b

  30. ' G+ x0 H$ {2 p
  31.   }
复制代码

! U2 n+ C) y1 b" c' n  5、/*编程打印直角杨辉三角形*/
: B  i, ~7 Z8 \! n8 U, v. T; F& t& t
  1.  main()
    * C. A5 E' [2 O# _9 @

  2. 7 n  ~0 Y+ W; W' a' s! o* ^9 ?( [0 l2 b  J
  3.   {int i,j,a[6][6];' n, _: V4 M% n$ }. z

  4. ( Q& k$ d8 R* @3 g
  5.   for(i=0;i<=5;i++)
    # n3 B9 S3 w2 x* J

  6. . x  Z) i* n5 i* H) [4 U4 m
  7.   {a[i][i]=1;a[i][0]=1;}
    $ M  A( |% h5 ~+ O2 {" u  k
  8. & }8 v6 a  [) T# Z) g
  9.   for(i=2;i<=5;i++)
    ! P( `, C) G* G( O% G

  10. ; `0 Y8 `  M/ k3 Q2 z- C6 B
  11.   for(j=1;j<=i-1;j++)
    ! l! r7 k- q5 Q" A" {$ V* A
  12. ' S1 U4 B7 r. C. {! T" C; o6 `
  13.   a[i][j]=a[i-1][j]+a[i-1][j-1];7 O. F: H7 k+ Z" M* s7 G4 m+ K
  14. ' h2 L' R7 W$ L* E5 Y, a
  15.   for(i=0;i<=5;i++)( K, z5 H9 |. n3 \

  16. 0 `6 i3 L' }, Y3 c( ?: K
  17.   {for(j=0;j<=i;j++)
    ' \1 V3 Y! R: d# A2 y/ ^9 `, @

  18. 3 q- ]% l% B9 I
  19.   printf("%4d",a[i][j]);7 Z# r, Z$ r6 s
  20. " A& h1 c! `' u/ x; k9 M2 G
  21.   printf("\n");}
    ) E! s3 s5 n" a" b) _6 s
  22. 0 _7 X' S: b7 B' m/ r
  23.   }
复制代码
# W* V# w7 Y' D) Z7 f
  6、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/5 e. a- b+ |4 w5 u
  1.   #include "stdio.h"; i5 Y$ c4 }+ |  N2 h

  2. ) C; Y) m8 F3 ~) }, v/ @
  3.   main()5 j; P, v+ I8 M! o9 @  H
  4. ; M1 O2 m+ S9 B: a1 C6 R% V5 A
  5.   {int i,j,result;5 x$ d. S9 [5 p! b4 E

  6. # T  n; m: q4 S# A4 J7 d% r! _
  7.   for(i=1;i<10;i++)
    * T' Y5 P- g% y* P. a8 J
  8. 7 a- P  @9 E  J2 z# v
  9.   {for(j=1;j<10;j++)
    / v' F3 ]3 p& P0 \. x0 [

  10. ' T) g( q0 K+ k" B6 `( h0 ?
  11.   {
    ( C! \4 t! `' s8 H% R+ p

  12. , ?  g& s6 @2 c4 `& O$ b& B
  13.   result=i*j;/ z  D4 G6 ]! E3 x

  14. ' C/ L: F9 Z' B3 v5 g" Z
  15.   printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/* t4 U4 \7 S5 U, q, W

  16. ( f$ q  q6 y7 |+ g7 U4 |
  17.   }
    / m- u: k3 j0 J2 n$ l1 c+ u

  18. 5 P% y0 H6 A2 A
  19.   printf("\n");/*每一行后换行*/
    5 _5 a! K7 ^0 m, b

  20. / p8 ], |/ Y" l0 `: T; J
  21.   }) j% |: y1 S- W- b% |0 P
  22. $ H8 I: f( G1 u
  23.   }
复制代码
! Q& k; f' ^* B; o" n& T
  7、/*下面程序的功能是从字符数组s中删除存放在c中的字符。*/, F) a8 t, R& i; R9 Q3 p
  1.   #include
    4 b2 Y' p8 ]/ S" o2 B2 @9 R
  2. : N! X; D) o' t4 g9 P
  3.   main()
    1 C$ G  m, b' a8 y( r

  4. # g6 H& l& C0 t. O- ~' p/ A
  5.   { char s[80],c;
    * ?; N9 i& ^- u3 V

  6. 2 d0 \, p# U+ E) M- \. l1 V
  7.   int j,k;: [  B5 U3 g  M' g5 I& @( T8 Z
  8. 4 L# |: C% }$ @' {- {& O
  9.   printf("\nEnter a string: ");
    ( k) X) _( [' K, c1 {6 g
  10. 1 r& {8 e, ]* f2 W; E& ~
  11.   gets(s);
    - a# ~* r; w8 \1 D- g/ [; E! V
  12. * u4 J) V+ f+ E5 H  D- m/ A5 x  g8 p
  13.   printf("\nEnter a character: ");4 S1 b1 }% l. X" b. i
  14. ; |1 o: e, p' |1 E
  15.   c=getchar( );5 H& k4 C, [- D/ e
  16. 2 y2 e! J1 Y/ S
  17.   for(j=k=0;s[j]!= '\0';j++)
    * u; Z& ?2 G: V

  18. . j# v  U8 R/ Q/ w! X
  19.   if(s[j]!=c), h  d# D  w- A4 x) g& o: {( M0 @& c
  20. / [3 j; k* Y5 m( J  O
  21.   s[k++]=s[j];
    # @/ B( ]$ E& G. g- H
  22.   n1 S; K* h9 O9 l; x+ @" `! b
  23.   s[k]='\0';
    " f5 x7 @6 l+ h5 L8 |
  24. ' r9 P8 V; q% Q" ?) G
  25.   printf("\n%s",s);# [( m+ A4 |7 @

  26. ) @# F( v5 z( ]2 Z1 q: \
  27.   }
复制代码

- D6 I- H, G8 \$ s& @1 c  8、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
$ W; x) t+ X5 P. p  兔子的规律为数列1,1,2,3,5,8,13,21....*/
7 \  }7 w  ]) g% N. v2 m( ]' A) w4 ]  b. i6 m  D" F
  1.  main()
    4 w# X+ e9 I& Z5 w

  2. , x3 G2 r9 D9 U* B4 _8 q
  3.   {. g. H3 i3 t5 u/ I" H: U" O/ V

  4. " b4 {1 }6 n; k+ ^3 U
  5.   long f1,f2;
    / U' s' |/ v+ U* e" l4 c+ U7 I
  6. 1 j5 f' ^9 Q* L. n# |
  7.   int i;; e2 |: M  g" x* c2 ^) f
  8. 4 ]' r/ H6 F- D- |
  9.   f1=f2=1;) [9 I4 N7 ~  I
  10. 8 B7 i4 n- M; h9 R9 Z
  11.   for(i=1;i<=20;i++); f' l5 x  M$ l6 \7 D
  12. / M2 W2 @: U, c1 h) }3 h! Y
  13.   { printf("%12ld%12ld",f1,f2);
    1 H6 f# G' c; x" ~  J  x
  14. $ l4 }( _* N  _
  15.   if(i%2==0) printf("\n");/*控制输出,每行四个*/
    : e7 u: b. L4 I% T3 U. C

  16. 0 A$ F# d) V& `5 N) o" v. z# t
  17.   f1=f1+f2;/*前两个月加起来赋值给第三个月*/! N6 @- Q# g2 u
  18. ! E  J, U8 N( T  H; x2 x* m8 j6 e
  19.   f2=f1+f2; /*前两个月加起来赋值给第三个月*/* U, r# r+ D) E" H8 ^" I: D" D: \

  20. / u. P* P2 {" V4 o, P" W
  21.   }, z6 t9 v; |% ^  |

  22. 1 c" l. x! g4 ~
  23.   }
复制代码
1 [( L: I$ h& ~) e' c8 r8 A
  9、/*通过键盘输入3名学生4门课程的成绩,+ C2 c8 f  G4 h0 f& P
  分别求每个学生的平均成绩和每门课程的平均成绩。6 a, f* A$ Y. H1 h
  要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车; o& T) z: W2 ~- ?5 ]
  其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。*/
0 C; K& G3 S! I2 ^7 Z
) y9 U3 g0 I! l2 W
  1.  #include1 r/ W# w& G" A$ `9 ?  z0 o

  2. . I# g/ v$ u/ I6 N& ?0 t4 x
  3.   #include
    8 S$ }, y; e( {, b$ H: S0 j0 a

  4. 9 h; ]5 h& s, o# m0 }8 `6 `/ T
  5.   main(). j9 Z  T2 D; W
  6.   A& U8 u8 \" a. }  A* ?4 I
  7.   { float a[4][5],sum1,sum2;, l" G% O5 D1 `1 J
  8. ' B9 p+ f& `' n& e% E' W
  9.   inti,j;
    & I6 A8 n* n1 L6 M0 {* c4 }: v

  10. ) r% a  ?: v3 Y+ |( E% M
  11.   for(i=0;i<3;i++)0 h. Y' ?7 f* y% c
  12. 0 \" ]: w( s3 o" j* n6 r
  13.   for(j=0;j<4;j++), Z( s5 m2 e, a, `* T  {* s3 U9 }

  14. * D0 W# Q8 ^. X
  15.   scanf("%f",&a[i][j]);
    " \7 _# Y% Q, f# K

  16. 6 z5 T/ c( R6 P$ }2 p
  17.   for(i=0;i<3;i++)
      }$ r, K4 ]1 w" f/ K
  18. & s- M2 F3 O. m& ~- Z$ G
  19.   {sum1=0;
    ; a/ i9 n7 z% Z% `) y7 X3 t
  20. 5 E$ ?1 \3 W5 Q5 U5 P2 m( r* s! A
  21.   for(j=0;j<4;j++)
    : R; E6 q& l1 @4 y! E, V- w# D

  22. 0 y$ [3 A* u) ^% a) H
  23.   sum1+=a[i][j];4 z- L( U! p; z! `

  24.   V: y* S- l" W5 b
  25.   a[i][4]=sum1/4;
    8 m' j* u6 V4 b7 V  z4 O) R) m) o

  26. 2 k4 x5 u5 [% f9 q, J! D
  27.   }; v3 N* y1 ~' R, h" s: v0 p) K

  28. $ p  p7 l4 d1 e. T8 p
  29.   for(j=0;j<5;j++)
    8 t" T, g8 L1 T; p& K

  30. # `7 x% o! {( F, f" e3 Z, q* z
  31.   { sum2=0;
    / _4 [8 Z/ k$ g3 i1 x4 L0 U! o

  32. 3 ?& x) c3 g* L  c- V  `
  33.   for(i=0;i<3;i++)
      f4 g: g( T. I1 Y2 D

  34. & J1 z& U! {  D9 ?- G* f
  35.   sum2+=a[i][j];
    ; _8 F0 k, p; R  [7 p
  36. , P& _, M; p. P6 T! W' ~
  37.   a[3][j]=sum2/3;
    " i0 o" z& I$ C
  38. & w! D' t* B7 H, [7 m  `
  39.   }
    9 {2 J* S% L% D5 `3 s

  40. 7 _4 @$ j# L1 H3 S; p5 f8 @
  41.   for(i=0;i<4;i++). k# p9 }$ o' n  c" [  u
  42. , y2 _: Q8 p% i2 j9 ]$ {
  43.   { for(j=0;j<5;j++)0 `" ~$ {5 `" S: L+ r
  44. ! d1 z; _: l; C$ w/ }
  45.   printf("%6.2f",a[i][j]);# ^( @3 |/ d+ j6 |# a

  46.   D( u! X6 j( `6 b7 i; c* _+ K
  47.   printf("\n");
    " v8 }) f' F2 P8 e5 k
  48. 1 r. |9 @5 ?- b- {; F& g
  49.   }
    ( w0 z) |1 W: Y2 h& K8 n' c2 D0 b

  50. 8 n' v% y5 D: q" T) D8 y2 D
  51.   }
复制代码

0 I4 {/ S" d% P, i# m5 J  r& ?2 e& y  10、/*编写一个voidsort(int *x,int n)实现将x数组中的n个数据从大到小& o) ~: B* G$ b
  排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件p9_1.out中*/
  h3 O! \! e7 @( j' `2 U8 F
  1.   #include" g) }4 {0 l$ V' v4 ?  P

  2. ) l  v5 D/ \% u  }6 n& \' t* d/ {( G
  3.   void sort(int *x,int n)0 p8 r; r1 e; ]7 E7 l, Q; C0 K

  4. ! j8 @) s/ I0 X6 \/ R- J
  5.   {
    0 V% J# |* ?( j. C# _! l$ r  ]
  6. ' n: h5 c  j; d) f) n
  7.   int i,j,k,t;* F7 T3 V8 C4 B8 r; `( X
  8. / v5 {* F4 v. ?0 d% f# F9 g0 o
  9.   for(i=0;i
    . K" V9 r/ A9 ~/ q. u5 F
  10. 5 K2 [$ e; O% G4 D
  11.   {
    , n+ r, \  O; c* w2 i- S! o: \
  12. - Z8 G2 G3 h( e: N" F" X( J* c+ @, I
  13.   k=i;0 r, I/ C  i/ z/ X
  14. : G" Z) J) \* d# t9 \" @  u# ?1 r
  15.   for(j=i+1;j$ }0 B2 k0 l: t2 I

  16. 1 S- k6 T/ x& t1 g2 _9 y
  17.   if(x[j]>x[k]) k=j;, @: H; I3 A5 p" U( {( v
  18. 3 E; W# l/ E! A: V( C* v
  19.   if(k!=i)
    ' A! r$ }+ v" ?9 U# o$ Q; I
  20. * ]' y! u' a4 l; s& _' u& l
  21.   {& L  Y" [' m& Y4 e/ M

  22. 2 u5 ]% ^' H% g9 K
  23.   t=x[i];
    % a: M- p- C7 r2 H4 J

  24. 2 k' e" ~9 a6 {. r
  25.   x[i]=x[k];: L9 r5 J+ x3 }  k' W6 S( {
  26. % m1 I) d$ l: t+ T6 Q5 M* L
  27.   x[k]=t;
    , N6 ?- H- G; {+ S0 w

  28. + g; [$ E, d( p$ ~, j+ o. Z7 F2 d
  29.   }& l# L) ~  s  [9 {  M' G/ |; U
  30. ) N4 i7 \# ?, r1 h
  31.   }
    ; v/ N4 y6 j( X$ ^- N/ G# d- s
  32. $ z3 Q' A; K  i5 I
  33.   }
    4 w& c5 ?: R. N; i5 ]- ]2 }# w4 K
  34. ! U( e& X# n  W. W% M! C
  35.   void main()
    ( f/ R- s' G8 t& ~' Q3 I/ \6 `9 O
  36. ( K+ P* H% [' B0 L8 `% r+ J6 Z
  37.   {FILE *fp;
    + k. h2 n; ?- K  h

  38. $ _' U* }9 i* j8 ]* d3 t' e
  39.   int *p,i,a[10];; p% e1 }+ J2 p
  40. 7 d3 @0 U7 }! u( @7 m' t
  41.   fp=fopen("p9_1.out","w");
    9 K6 \- ]4 c# |9 j# t# r

  42. ' B( _% `# k5 D( o* b6 T. {
  43.   p=a;3 |  n4 }8 o/ |: r) _: ~/ F% C6 Y' z! d
  44. ' `1 h( Q  n4 Z# M
  45.   printf("Input 10 numbers:");
    4 F5 T: T$ _) @' \, }5 f# ~* y
  46. ' H- Z# X: n% G; A$ U
  47.   for(i=0;i<10;i++)
    4 M4 @9 w0 w6 z- u

  48. ) O9 [0 E* v) \" R8 l- c
  49.   scanf("%d",p++);; k- ]5 n8 i  H) T

  50. * o' P8 Q* }+ a# j2 I8 z. |
  51.   p=a;
      h) V0 b6 E: b" \% j$ H
  52.   S, |7 O$ j3 U  v
  53.   sort(p,10);; }- h2 w+ @$ ~" i
  54. 5 p5 R7 Q6 v: u' u4 \
  55.   for(;p
    4 j! j# u" S8 ^

  56. 9 g( A6 }3 y/ e
  57.   { printf("%d ",*p);: ^# B. O  \; e

  58. # w' _" L. O3 \  e- Z
  59.   fprintf(fp,"%d ",*p); }
    " A. t( _( N, G3 X4 e1 h

  60.   f- T, _6 @* d: Y& u$ j
  61.   system("pause");
    , r7 S% A- e8 x% Y" p4 \

  62. 7 E' r4 c7 q! |7 u! b6 L0 ]# a' z2 Q
  63.   fclose(fp);
    $ W$ c1 `. d( }
  64.   A9 B/ M9 k% g, K5 e2 k; \- E7 z3 g
  65.   }
复制代码
/ e! i7 F( n, h2 G
  11、/*编写函数replace(char *s,char c1,char c2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中*/- T+ i) c' L' {9 I7 i  v* S

6 f9 i4 Z) j- c
  1.  #include+ X; _# I1 q" n3 c% B
  2. ( C/ ]( I  v9 [+ B. ]
  3.   replace(char*s,char c1,char c2)- Q% C$ O" A6 W+ a

  4. 8 T& ]: H9 S! S4 x: w% M$ I4 w
  5.   {while(*s!='\0')- o- x6 @4 n3 Q/ q7 E

  6. * H5 W9 h: C3 u$ j  b. \+ \% z
  7.   { if(*s==c1)
    9 b4 k0 M) j) C

  8. ; m5 Q& o7 k- T
  9.   *s=c2;
    $ A6 h- b! N$ B

  10.   H4 u; F9 T/ G7 W
  11.   s++;! ]; J6 T! H0 \+ h7 `  \$ q+ Z
  12.   N; D; P8 C1 }, H7 a
  13.   }
    ! _" d8 h2 ~7 j0 j% h( c

  14. 4 ]( ?+ |- q- V7 |
  15.   }4 V2 ]" |0 d2 K1 u7 a3 z
  16. $ P5 i/ K# `! p( u  W, Y# I
  17.   main()9 H. @9 g5 e$ f2 n) |

  18. . F* t& x" B# w5 M1 [/ ]
  19.   { FILE *fp;$ S# }; {( K: ~: X

  20. $ `! J( |9 ^) P) H
  21.   char str[100],a,b;* _+ h  @7 a( d. N% D+ V6 A2 X, w

  22. ) m' u* Z# f* o
  23.   if((fp=fopen("p10_2.out","w"))==NULL)
    " x3 g# x7 s0 m5 R$ J
  24. . N! W3 q9 }- K' x
  25.   { printf("cannot open thefile\n");1 Q3 B) C$ [  i: I9 H0 s

  26. / a8 Y4 @! R+ v3 _
  27.   exit(0); }
    ( S9 A! G: s& O" M9 ?5 o
  28. ; y# `/ H. U+ g4 [, s; s
  29.   printf("Enter a string:\n");
    + m* C& w) m2 P) u1 s6 |! \

  30. 4 t7 w9 }2 G9 p+ i* o( ~, g! P
  31.   gets(str);
    # {* u9 y0 T, }# c; V
  32. . x+ }; ~; R+ ?2 y
  33.   printf("Enter a&&b:\n");/ I& l  z0 A# D3 o

  34. & T. A: b2 v8 _/ o/ o  `$ ^
  35.   scanf("%c,%c",&a,&b);! m) |& }2 Z5 k2 ?
  36. 9 k, k! Q' a" G
  37.   printf("%s\n",str);5 A, W) U) o+ U2 z) R
  38. ' k* i" v: @0 c$ w
  39.   fprintf(fp,"%s\n",str);
    ! [7 ~2 u7 t' b: g# M
  40. ! f- @6 v/ F/ D7 @2 K$ I, {8 s
  41.   replace(str,a,b);. N  F& O0 f( w6 A1 u& u
  42. # T$ S1 L2 F! C4 b
  43.   printf("Thenew string is----%s\n",str);7 k! `% Y+ d' _3 k
  44. 1 p* ~  f' u" }, e: `  h
  45.   fprintf(fp,"Thenew string is----%s\n",str);" k+ V" \, Q8 {

  46. 9 Q  T2 g' }% t  m+ t
  47.   fclose(fp);+ n9 n3 j, c2 C/ n
  48. 0 ?% r" d3 o+ F  K5 |/ b9 G
  49.   }
复制代码
  D$ a9 m2 ]/ N! e
  12、/*在一个字串s1中查找一子串s2,若存在则返回子串在主串中的起始位置( M1 H" u! a. M* p' c; C0 t" i4 z
  ,不存在则返回-1。*/% k" p& p' n! U, T1 B; I
% n$ `* N3 W# y+ w& M1 y
  1. main()" C* m* X6 E( v; R
  2. # h: D9 m8 Q( w) \
  3.   {chars1[6]="thisis";char s2[5]="is";% L9 f$ \8 W3 }( i9 k% j' r' T6 g
  4. 6 D- n# I& ^$ k% I3 Z
  5.   printf("%d\n",search(s1,s2));
    9 O& [8 N3 g/ m+ E; P

  6. / l5 e6 Y* n; f7 o
  7.   system("pause");4 V  F: ^1 \2 |2 h8 t% O

  8.   y! p2 ?9 S+ O. P  E0 \' e
  9.   }  v2 ^  z- Q9 ]+ Z# C$ U

  10. 6 @8 H+ Y+ A% S6 M5 v5 ~( s
  11.   int search(chars1[],char s2[]), b6 n6 u: J7 V! {/ m9 i9 E/ {

  12. 9 t) B$ Q' J: [% }( m" N& b
  13.   {inti=0,j,len=strlen(s2);
    $ Q1 ~3 B: B# K8 A
  14. / \9 T; Y; t& W$ c7 u" ?1 P+ K
  15.   while(s1[i]){
    1 |8 h/ K# I/ k! S: Y3 c5 o" f
  16. 0 ~- w! ]* Q+ l7 J# O
  17.   for(j=0;j
    2 d4 `+ U$ F6 }

  18.   ~4 D1 \8 f, G& Q
  19.   if(s1[i+j]!=s2[j]) break;
    6 T5 }2 v& K3 H1 Y" Q

  20. + `6 R, Y; e/ K6 a5 `' O8 i0 _
  21.   if(j>=len)return i;( ^) S) o. r% M/ J+ }# D) V& F( a
  22. 6 I+ w& `, j( T
  23.   else i++;
    8 i' @' I4 i( J* {) f) s' Q, o
  24.   ~' A$ Q/ _$ Z; A& ^' G% R
  25.   }
    3 g3 ~1 A! s" V2 t9 w
  26. 2 N+ A* \8 _+ H, ]. E/ \
  27.   return -1;
    & k8 ~3 Z9 O3 G0 @5 E

  28. " g" H* W0 c/ l' H# t) D: y
  29.   }
复制代码
$ z% T8 X7 Y; U0 N0 ]6 ~* ~0 V- z
  13、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列*/" J' `" j, D! g5 K' O! x1 v
+ S+ o6 B! v% O: A6 ^9 ~
  1.  main()1 l. w' w# {5 l) p" r
  2. " n3 z1 t( w+ b+ b. H3 W- q
  3.   { inta[10]={0,12,17,20,25,28,30}; /*a[0]为工作单元,从a[1]开始存放数据*/5 ]1 n2 b( ^' l8 F
  4. % A1 W" _; `7 H4 c
  5.   int x , i, j=6; /*j为元素个数*/1 b' C' ^  H1 @3 j: z7 u4 x+ y
  6. 2 o' D5 v6 @% s
  7.   printf("Enter a number: ");
    " @9 m) \9 q( L+ G3 @) @
  8. 9 l2 A4 D! Y9 K- |7 }2 z
  9.   scanf("%d",&x);
    " h( X9 q" `& j+ N- |( I
  10. " c/ `  ]9 c& e6 d
  11.   a[0]=x;8 \9 E' u9 E% H9 s  N

  12. ; p" i3 S$ c, `
  13.   i=j; /*从最后一个单元开始*/
    ) {2 f& ]6 e) g# p
  14. " ~" D, @3 j" W
  15.   while(a[i]>x)+ u8 i, j; N' T

  16. 2 z0 ]) D* g1 I/ y- ^2 N
  17.   { a[i+1]=a[i]; i--; } /*将比x大的数往后移动一个位置*/! R: J8 ]8 c' c1 Z# t. K3 {. l5 `4 q0 R
  18.   s% V) s5 }# o/ Y
  19.   a[++i]=x;
    1 I8 O+ S. w$ I) @
  20. , l1 I; f( y2 j3 l
  21.   j++; /*插入x后元素总个数增加*/
    % ^9 j+ E6 j* C: Z- e
  22. ' @- A3 F3 q+ r9 V
  23.   for(i=1;i<=j;i++) printf("%8d",a[i]);
    1 e! L) d. h9 q* X% X: }8 s

  24. ' M6 b& `& e# U" m. ^
  25.   printf("\n");
    4 [2 Z: \1 m: d) j) m6 x, v: J

  26. & h' Y# U% n  ^2 h8 T- D
  27.   }
复制代码

. O. _1 f. q0 j  q- I8 {  14、/*用指针变量输出结构体数组元素。*/2 q0 ~3 O. U% H  b( o/ T8 ~

  u; A8 n# e! c+ d1 m
  1.  struct student5 z! w" ^! s5 `$ [5 Z, k% j$ c
  2. 8 c; N5 P8 x, L; q5 F' y
  3.   {
    & W; C: a0 p# t, P' H
  4. 3 X2 m5 B1 S  j' C5 \! c
  5.   int num;
    * j9 P# S9 t9 \2 t/ y% w' J# h7 i( U

  6. ' G0 a% }/ J% l& t- m
  7.   char *name;7 l- U. c0 Q' q: j
  8. $ b0 w" q+ r$ i! W7 |$ R) D
  9.   char sex;6 p* u: [) @* M' |" I+ V
  10. $ `+ n; K9 \+ N* F& Z: n/ o
  11.   int age;4 ^) c- O1 |+ b0 D7 Y9 l

  12. - j3 T# e' M: ]- b$ a' n! F1 c
  13.   }stu[5]={{1001,"lihua",'F',18},{1002,"liuxing",'M',19},{1003,"huangke",'F',19},{1004,"fengshou",'F',19},{1005,"Wangming",'M',18}};
    : R0 a! V/ Q5 n% a

  14. . N2 v$ Q. ^$ ], x
  15.   main()) ]0 e5 F% f) S( V5 L5 B6 v# _

  16. 6 A2 J$ n/ _" u, j! c5 ^  ~
  17.   {int i;( A/ j7 C: t  X- ^
  18. ' J0 I  d- V) q  {4 c- ?
  19.   struct student *ps;
    % h! N: d3 n" L3 x3 Z# T
  20. % c' {& Q5 D  P2 k) c6 `
  21.   printf("Num \tName\t\t\tSex\tAge\t\n");- j9 m: R: r$ s

  22. 6 b( Q* _$ }5 B$ Y2 ?* V, r
  23.   /*用指针变量输出结构体数组元素。*/7 J" W3 n( m4 [8 H9 r6 l; s
  24. . d; R0 r5 A! ?# X1 U
  25.   for(ps=stu;ps
    ; U% W( O* v) [" z

  26. ! I( O, n% f% o
  27.   printf("%d\t%-10s\t\t%c\t%d\t\n",ps->num,ps->name,ps->sex,ps->age);, Y1 h8 C5 Y/ S

  28. - i  E1 |6 k# B5 C! K; ]
  29.   /*用数组下标法输出结构体数组元素学号和年龄。*/
    - ]) f0 N0 Y9 z" k0 |& T* m2 s

  30. 1 B( V' Q# s# B+ r" t
  31.   for(i=0;i<5;i++)
    , d4 F' e; `! R7 j# ?
  32. * \& _) [/ D# R& O+ J
  33.   printf("%d\t%d\t\n",stu[i].num,stu[i].age);
    6 _; Q' y: M, a: c$ b2 c

  34. . N$ f1 Y2 \) I, C& M
  35.   }
复制代码
2 f: X. s! u# K* s
  15、/*建立一个有三个结点的简单链表:*/
3 [7 h1 k4 m5 f4 S1 W* T$ s
" |4 W, F# h  G6 T4 g- I* R
  1.  #define NULL 09 q! t7 z2 _; F* m# K1 W- B

  2. + b8 l2 T* L, O1 u  ~1 w
  3.   struct student
    ( P% N8 c0 u6 `
  4. 0 x! @% |! F3 }" S$ \
  5.   {
    ( \' m5 Z' {- \2 L8 N! \
  6. - a: q1 _, C7 g3 X0 K$ Z$ s% i
  7.   int num;2 G# l4 ^% H: {6 S* @) k
  8. ! h7 o/ }5 A5 E8 l# i
  9.   char *name;
    - Z/ z% M8 h) Z- q9 F
  10. 2 J$ T; K4 C; T$ v+ U+ z
  11.   int age ;
    6 @" v; Y6 W1 p' a1 D9 H
  12. 0 {+ I- ?, m7 b$ u
  13.   struct student*next;
    " J& Q) M9 Z0 h5 K1 |

  14. 3 U& S! N' I" N/ A& Y# \
  15.   };# y% ~9 ?# b( [- O- N5 `. ?

  16. / ]/ H4 D) B1 x3 t) m6 u5 s
  17.   void main()
    $ Y$ R, ^3 T+ E! G0 \
  18. 1 h- X3 B0 Y! r% Y- U2 o$ J
  19.   {: a3 ]: V: d$ S

  20. ) V8 r  @% j2 m
  21.   struct studenta,b,c,*head,*p;
      H6 K1 n9 Z6 @
  22. 6 O* O) o( {0 }. ^8 m6 b% _9 y
  23.   a.num=1001;a.name="lihua"; a.age=18; /* 对结点成员进行赋值 */
    6 M9 H5 L$ I, h& [' Q

  24. 5 a( R, a8 K0 V
  25.   b.num=1002;b.name="liuxing"; b.age=19;* U$ t1 s2 ~" h# G, S1 {3 N  j4 u3 }
  26.   l0 ^. O6 I3 T
  27.   c.num=1003;c.name="huangke"; c.age=18;
    + R7 b3 j4 L: X* ^

  28. ' O. V" ?3 }, ]
  29.   head=&a; /* 建立链表,a为头结点 */1 b0 W9 b4 T% S* y$ x; f
  30. , V0 X/ K# \0 J9 z5 R: I- U- s
  31.   a.next=&b;: e2 r" Q, U3 S" d2 w
  32. 7 ^, t1 M9 E# V6 [" W
  33.   b.next=&c;/ k- V1 X/ W4 L. w9 I; _

  34. 9 a6 K  M  L4 O2 j& D
  35.   c.next=NULL;/ R  j+ @. A  M
  36. . t& E- A( A3 g* c
  37.   p=head; /* 输出链表 */
    ) d% x$ o/ I# f1 E6 `+ y

  38. - S2 R5 U0 p/ ^
  39.   do{) {# _$ [1 g$ ^
  40. ' a; d" r# z/ r/ ]! C
  41.   printf("%5d,%s,%3d\n",p->num,p->name,p->age);7 E0 }  H3 W2 ]- p1 b3 L
  42. 8 P3 m2 D. V8 M4 o$ r, _
  43.   p=p->next;
    2 U% e' B4 J, D8 U
  44. 6 q. e& E* y1 t6 [6 `; b
  45.   }while(p!=NULL);* f- f! C: Y& c" K- \3 c4 ~) A

  46.   A& S+ e6 {! g3 Q& b' W. l
  47.   }' ^" Q. _- y  c: J
  48. : |9 t% l; k6 k/ I! q3 k5 P& M
  49.   16、/*冒泡排序,从小到大,排序后结果输出到屏幕及文件myf2.out*/) H4 z! z! Y5 y( B

  50. 7 }1 G5 E0 h) \
  51.   #include
    - y- D- V$ g# r: ]4 S4 f5 }9 n. u& h
  52. / Q2 Q. |2 ~# W4 ~
  53.   void fun(inta[],int n): t- m! ^2 L# E$ h% ~( w& l

  54. 6 R" E7 i$ [  h% M
  55.   {int i,j,t;
    / o8 u- |# J/ x

  56. % C3 [' u. W: s# ~+ d  Q% ?- }. M
  57.   for(i=0;i<=n-1;i++)3 H* u0 j- e& `  [. K# u, z

  58. 6 n; t! t7 w9 ~; y3 V4 U
  59.   for(j=0;j0 R6 {0 M" L  T% F! _

  60. + ?# L& S$ L& t
  61.   if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}0 o8 D& X' h5 a; l9 ?7 N
  62. 3 f8 C* Q. U+ F' k$ X
  63.   }7 w! B9 p. H3 G" s

  64. 7 }7 Z+ e1 d* e4 K; V' H
  65.   main()
    9 O- h/ O* A2 b

  66. ) b' w( `0 x4 _7 s6 N" e- n
  67.   {inta[10]={12,45,7,8,96,4,10,48,2,46},n=10,i;
    ; n) L, }. W( ^$ f

  68. % O. r1 e+ v' }: h& X
  69.   FILE *f;; h% H& F  W& }$ y; Z2 Y; i

  70. / ^. g0 I- \9 d3 o$ A
  71.   if((f=fopen("myf2.out","w"))==NULL)8 y# K  I4 t2 e' n

  72. ( N) j+ b- X' M( M9 D% _' V2 c
  73.   printf("open file myf2.outfaiLED!\n");
    % e( p4 B: l. }4 Z% e# d

  74. $ \0 |* `) h3 y% C; {* L
  75.   fun(a,10);
    # @& `: E, }  s( V

  76. 5 v, ]4 v+ o( E. |# b: y+ g2 B
  77.   for(i=0;i<10;i++)
    : J; K9 ?6 c4 K2 Q  [; d: o
  78. 5 {4 l6 k9 p2 r$ g# X
  79.   {printf("%4d",a[i]);( K2 }9 i5 Z1 d+ D
  80. 3 ^5 D) p) \/ r  l, D
  81.   fprintf(f,"%4d",a[i]);' D: Z- l8 o% q: i. @5 Q! ^# |
  82. . S# r9 C; a# B( ^" x2 y0 R+ W% r
  83.   }3 ?% B; I, u; p* ]. ^

  84. : b$ {& Z: B( n2 ^5 N# Z; o$ w
  85.   fclose(f);2 C$ L! C& W, J/ y
  86. - E/ u0 ~6 @6 w, E' f1 y5 |3 d2 w$ X
  87.   }
复制代码
, f1 N8 _  N9 z, Q$ _  m
  17、编写函数countpi,利用公式
+ E6 w% Q; E) l) C+ O  D  计算π的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。  R1 K, }( r* D. S$ F2 g

5 N) [# f2 f' D2 a" k
  1.  #include
    & u* Q: {$ @  f- E) D
  2. ) A+ u% ]* L- V
  3.   doublecountpi(double eps) /*eps为允许误差*/. Y9 c! ^1 m- G, p; j+ O

  4.   q  l4 @0 j, N+ c' J+ l# G- `( R
  5.   {
    - q; b2 s$ k) t- l0 [9 E
  6. 5 l* c$ Q7 u: r
  7.   int m=1;
    5 g0 O- b3 o3 I  X; U/ Z4 F/ ~

  8. % ~2 ~5 }+ y: ]. {
  9.   double temp=1.0,s=0;
    . I, `# m! U% p) ?, j/ A* z

  10. & f" O3 ^0 r% ~/ r' b" y* C! q
  11.   while(temp>=eps)
      P  @9 p' a( N, E
  12. ! P: _5 ~4 e; _
  13.   { s+=temp;
    , P; q/ c+ h( B/ a
  14. 5 X5 r6 E; |) ~9 T4 q1 e
  15.   temp=temp*m/(2*m+1);7 Q: s' g# L$ v7 Y1 M7 n$ x
  16. ) }- f( H  s- V# l) B9 N  @
  17.   m++;" ?" E: }: R4 e  g

  18. - |; M% g: L  x# I6 k. ?* l, q9 o- }
  19.   }" f: m" N: L1 k" w: E, U

  20. & Z- Q2 K, E; R$ \# I! i- A$ S
  21.   return(2*s);
    : N$ x1 _: G" `5 ?! f

  22. 8 R+ y+ y5 p% U+ v) J" r7 i
  23.   }
    ) `) P& Z7 J( {! o+ n
  24. : v* ~$ F6 k2 s  _& d
  25.   main()
    5 W0 J' W9 F* v! j. m; U

  26. & Z' l7 s4 m! [, O5 O) x7 I7 P/ q
  27.   {FILE *fp;
    4 l8 n9 _2 @5 I0 E
  28. 5 F' }5 W4 S( l' U
  29.   double eps=1e-5,pi;3 T9 X, ^) U$ h
  30. ( n1 x2 F* k( F9 p: s, R' F7 Y# y; Q
  31.   if((fp=fopen("p7_3.out","w"))==NULL)# L+ t8 H% `2 l2 T: B$ t/ i  M1 n
  32.   \' c3 |" O# B- m0 n! z& T. O
  33.   { printf("cannot open thefile\n");' F, \8 X5 a0 F4 k6 ^
  34. ; x6 l; P6 l+ c/ K9 f
  35.   exit(0);
    8 p5 U! m" [1 I( i
  36. # y. d6 u$ P/ N, r; {1 S% }
  37.   }3 R8 h, m+ ^6 i- g8 k' S( c
  38. # |5 _$ g6 G- x" X
  39.   pi= countpi(eps);
    * \$ d. H  q' L7 Q3 j4 H3 b3 n9 R8 m
  40. , o9 D. {( _+ E* z* X" ^
  41.   printf("pi=%lf\n",pi);
    3 Z: Q  {; K% M( {3 q. u/ B

  42. . `+ |' B. k- q' N' W
  43.   fprintf(fp,"pi=%lf\n",pi);5 M- C$ j- a5 d' g- ?
  44. + v! q5 u5 |- |
  45.   fclose(fp);
    , @& d, z" ]5 a& o; o

  46. ' c4 c$ C" r, Z2 r& C7 G. Q+ J
  47.   }
复制代码

: @% z! T7 k) ~9 ]1 `) ]! g, Y8 {  18、/*输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。*/2 y5 ~' S& F4 [- `6 O& F
2 b! a! w, _% w% o, _, `, C
  1.  #include, r3 K! l  Q6 z4 r' t, Y
  2. 2 v+ d" m) D  C4 \" n( G9 g, }
  3.   #include' ~, F, i4 M' C5 p1 q

  4. 3 J* N: I! R6 K5 f' y
  5.   #include
    " P2 E2 l4 E5 G& U
  6. ; p& Z, h3 n+ M" y$ C* k+ j
  7.   main()4 e- n2 E7 g" A: D9 h# @( E, c

  8. $ K! ]' s  o7 B" I6 K8 g( D9 [
  9.   { char s[100];
    1 U/ F! @7 g7 l. e
  10. $ J% t: G- j- ^( X, r2 ]. D
  11.   int i,j,n;
    6 {' |; m  Z& R. V& k) u
  12. ' y. N; Q4 Y6 U/ P0 R; Z' w! n$ x
  13.   printf("输入字符串:\n");
    0 S2 D) i/ O4 v( c) s

  14. / g' [7 o7 W9 i: h5 T
  15.   gets(s);
    ( y$ a/ E: {$ t9 M  |/ U4 V
  16. 3 O) y4 u/ @6 Q" `$ T) f
  17.   n=strlen(s);* B6 O3 g3 R( O
  18. ! n" \. x3 ?4 _1 D4 B
  19.   for(i=0,j=n-1;i
    ; u2 z( E+ w' h* m  ~7 i/ @; ?
  20. 6 J2 @% N0 }- W4 w0 Q9 ?5 H
  21.   if(s[i]!=s[j]) break;& V2 }  M4 R. y  M. U+ M
  22. 4 I+ ]$ ?& ?- d5 V/ `% @8 L
  23.   if(i>=j) printf("是回文串\n");
    0 _4 w) M: s# I1 f: i# H
  24. ; ^2 q, L4 s* U8 l1 E$ E$ `/ G
  25.   else printf("不是回文串\n");
    ( }8 K/ S( c* ]. _2 b2 O; {" J' T9 x$ c* i

  26. , o0 a! G$ G: `
  27.   }
复制代码
: H! o& b& S: d
  • TA的每日心情
    开心
    2023-5-15 15:25
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2020-4-20 10:28 | 只看该作者
    很详细,谢谢
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-7-20 01:32 , Processed in 0.140625 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表