找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 132|回复: 0
打印 上一主题 下一主题

C语言经典算法67-76

[复制链接]

114

主题

136

帖子

1000

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1000
跳转到指定楼层
1#
发表于 2017-10-10 09:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

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

x
【程序67
# l( C& D7 N8 Z% s( I题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
2 t  W9 o5 i2 c, a: g1.程序分析:谭浩强的书中答案有问题。
& c  K$ f- B3 B4 c2.程序源代码:
; l, J4 y$ z6 \; T# `+ Zmain() " T4 L5 W9 d$ z2 X: M6 @
{
# R  n/ h8 c1 S* u/ N% Dint number[10]; ' m2 p7 T6 x0 o* V
input(number);
7 L/ j; T  h( F$ F. Z7 A. Xmax_min(number);
" k) M4 u5 l6 b/ `4 S8 `- ]% Houtput(number);
) M- R$ O3 M6 c2 v* W5 {2 q}
1 L' a0 E+ {# Y; e! ^2 xinput(number) , w, n8 n5 r% O, x
int number[10];
. n: Z) K8 r4 N6 k* f6 R{int i;
" T! s+ L2 s& u7 @! j$ d; x9 Bfor(i=0;i<9;i++) ) ?4 {9 K: V) N8 t$ T
scanf("%d,",&number);
1 J6 a) q* f: |$ w* e4 A: bscanf("%d",&number[9]);
- X8 q. R% W4 K+ i4 T$ {}
2 D* u2 {0 l7 H  V3 mmax_min(array)
4 O" G$ l9 r, K3 [& Jint array[10];
+ c2 L" q5 u2 X1 g" i2 D: Z9 A{int *max,*min,k,l;
3 F  G4 l6 a2 z$ }7 c; j% Tint *p,*arr_end;
; k( h( b  |" n$ G: \6 yarr_end=array+10;
% h  D2 ~! q9 q  m3 Q% fmax=min=array; 1 E7 G" d" i. `, j
for(p=array+1;p if(*p>*max) max=p; * G0 n6 P8 [; O  J: A
else if(*p<*min) min=p;
! Q/ V' X& g* T' {0 Zk=*max;
, `3 X8 Y# j7 v( E2 C; v/ m' Jl=*min;
$ x/ w% \  O/ g* M% ^*p=array[0];array[0]=l;l=*p;
% B! K2 X6 o9 \1 U6 g6 _0 J*p=array[9];array[9]=k;k=*p;
+ f3 y  e! W& T6 X/ B4 N9 h5 U& preturn;
& W& |8 A9 Q" p/ l. D) f} 4 V5 }/ B( ?2 u  z4 }9 M, z
output(array)
* l  H: T& ^# s3 ^2 h2 c- {int array[10];
  P: l; }5 }0 e7 Z9 I{ int *p; 3 _. C: W' {" s7 H% n5 C5 p
for(p=array;p printf("%d,",*p); : H3 x4 ?& X! \, }% e8 A
printf("%d\n",array[9]);
9 P! D/ f2 ^5 n, t% l+ P}
, L( y! _: q' U6 G============================================================== + I  y: p  c/ w4 C( j
【程序68
# R+ x. K; [, s+ S* f3 n  y2 n题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数 2 N6 z/ B+ Y0 D# B/ [
1.程序分析: 0 e' H6 M* w. o  h
2.程序源代码: # e: r* h) ?0 _6 ?( }1 g. n
main()
& b' r4 V' J  z0 p5 {{ ( t$ l1 s+ `2 T
int number[20],n,m,i;
* a, |: T+ u& [. c( ?( ^2 Eprintf("the total numbers is:");
: C, Q5 M. W( oscanf("%d",&n); $ t% a4 G- e  [! P% C
printf("back m:"); 7 [. c$ ?* k. n* o+ D
scanf("%d",&m); 0 i1 o9 p9 T% D- d0 ~& ]
for(i=0;i scanf("%d,",&number);
# |7 J1 l! |( F' R) Tscanf("%d",&number[n-1]); ! i- E, @" [* ?  x) b* ?- ]; ^1 y7 g
move(number,n,m);
' u0 x* E0 U; T) D# P* d, Ffor(i=0;i printf("%d,",number);
4 _& ~8 Q& e  m2 s- Gprintf("%d",number[n-1]);
5 B, ?8 I# t* i}
( c2 b4 h2 y3 q5 H5 H$ o" {1 |move(array,n,m) 0 z+ E6 D9 F5 N$ r% U' d  p+ e% b: i
int n,m,array[20];
9 Y7 M4 h: f0 P0 v! }{ , H& l6 f0 u2 w$ P  @
int *p,array_end;
9 X) n* W5 H* q. L8 M" `array_end=*(array+n-1); & g9 ^0 V& W4 h
for(p=array+n-1;p>array;p--)
& `  T$ J" F% q2 C*p=*(p-1);
7 v$ A: p* X4 v*array=array_end; ! D  ^% C, J: b9 q
m--; 5 D( m( K9 I- n
if(m>0) move(array,n,m); 6 E6 N/ i3 j2 |4 e, f
}
4 ?0 U  d2 {- _- t/ `" b' d9 w1 d( E============================================================== . j, ?1 C  _% B7 F. \
【程序69
* d4 i. K2 `/ T  M' |* `, P. F+ e题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从13报数),凡报到3的人退出 % [& r  A+ O1 ^( I$ d
圈子,问最后留下的是原来第几号的那位。信盈达嵌入式企鹅要妖气呜呜吧久零就要   N8 t1 l+ a  h/ T8 F
1. 程序分析: ) y( g6 b  S. H3 |
2.程序源代码:
8 w& ~* Z+ A1 w$ m1 I#define nmax 50 , ^, ~! y: I# R$ j/ J8 I1 m' o
main() ) `1 a/ A! A4 f& Y- S+ P' Y3 t' v
{
( v1 L- ~6 s2 h. p4 v, pint i,k,m,n,num[nmax],*p;
2 \$ |0 q6 ]7 sprintf("please input the total of numbers:"); 8 i* g3 I7 J7 `8 [6 c7 j4 t" P
scanf("%d",&n);
; n* E" w: t9 Op=num;
+ F) ~. I* O: zfor(i=0;i *(p+i)=i+1;
9 P' J$ f  i9 Z8 \) H3 X% f; f* @# Xi=0;
9 K/ L/ @' }- }. p1 Pk=0;
$ d4 m# J. C  |2 \2 o* Em=0; ( V4 W& o: D# h+ B# P1 J! @
while(m {
# r( x7 v3 }0 _if(*(p+i)!=0) k++;
* }7 l' ]+ H1 \. |9 |( Eif(k==3) # r2 S% L/ e& \' L1 z% e! q
{ *(p+i)=0; 1 M" e0 g$ v* y$ l3 |. [
k=0;
: S) H" C) _6 P2 O* [; Fm++;
6 \0 ^. J& k- u( c/ x; W} / x' _* |' `' z6 P& \$ b
i++; ) k4 \0 b. _& _) ]; y( n
if(i==n) i=0; 2 H9 B& y' N" ?! H" S; T
}
$ E4 p" ^) u% _while(*p==0) p++;
% \8 F- u+ Z6 }& Cprintf("%d is left\n",*p);
  a: F! y- S* h5 U& A+ ~$ ]! b7 R} $ ]) X( @& @# z  U! r, [
==============================================================
4 P) q  H2 Q" ]% r! ?4 M: |  W【程序70# V1 h- i& I8 c, O4 r2 v& P: @) l
题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。 ) [7 [9 j2 A, |! R$ n
1.程序分析: 4 F" n1 A( f+ v
2.程序源代码: & V/ O/ a6 H& Q( f' _& S1 s2 e, ]
main()
+ c. ]2 D. z: ]/ P{ . ~+ ^! \+ l' D$ f% x  e2 ~" z5 x
int len;
" v' u2 I6 y8 q! cchar *str[20];
7 Y2 t/ `  J+ X. E0 W- }printf("please input a string:\n"); 3 r) L: L4 l2 j; r
scanf("%s",str);
% W( _/ R: r7 s8 }0 D- l) u: S; ]len=length(str); 2 U6 ], x. Q# l6 ~* _" B, @
printf("the string has %d characters.",len);
5 v9 W& u8 v3 ?, O}
4 }% W1 F; f$ a0 h+ Qlength(p)   J0 }. {; y# t7 n7 }
char *p; 7 ]6 n! _; b! a/ I  ?
{ + T: S9 [2 Y7 u1 \5 k6 M
int n;
: ~+ j6 U* V, `3 F6 b6 o9 r4 [n=0;   k2 [% j& q9 m0 V# x
while(*p!='\0') 3 @3 Y8 a9 \% L4 q; {+ a* b
{ * c4 `8 Y3 m$ d: G1 r, i6 N
n++; % [. ]: x3 f& d3 x: m* ^- P1 [
p++;
  f% N+ K+ }' i! I0 C' j}
& Z0 U5 f1 j, N, P1 f9 ]/ xreturn n;
6 }' L; J8 S  [/ r' M' T4 g! B7 |} ' @6 _+ @) _; c8 s7 M! S+ M7 S
【程序71$ z, `8 l0 z4 Q7 F" U
题目:编写input()output()函数输入,输出5个学生的数据记录。
" Z4 }& Y4 y# `; J1.程序分析: % f5 I$ O  {8 A2 L2 m# {
2.程序源代码:
% }% h" n! ^7 Z$ A#define N 5
  [: d, d& s5 ]struct student $ u( p6 P$ M$ F6 `+ V5 J& k. D! ^
{ char num[6]; 1 v5 f; L$ n7 o" l- i0 }
char name[8];
% P( n, x* ~8 ~( L+ y1 d7 gint score[4]; . a1 n; s0 E4 ~
} stu[N]; $ I& n, c, T& ]+ C1 @7 ]
input(stu)
6 K2 j$ Q9 A# @, M$ mstruct student stu[]; * p6 x6 ?( Q/ C) k1 N1 x6 G4 ^
{ int i,j; ; x% g- h* c$ l/ R' x9 ~. \, K
for(i=0;i { printf("\n please input %d of %d\n",i+1,N);
- z$ x& Z1 o& oprintf("num: ");
; K% N3 U; P6 ]& s- u# L" [scanf("%s",stu.num); $ r/ e2 X+ N1 e7 ]
printf("name: "); 8 X: }. h$ O* j% M8 P
scanf("%s",stu.name); ; D8 q- F, c9 M4 a  _
for(j=0;j<3;j++)
, @6 {: d. T0 \9 l( S' R{ printf("score %d.",j+1); 2 d7 E9 F6 T$ o9 x4 f* C
scanf("%d",&stu.score[j]); : U( e$ H/ Z2 o. K2 O
} 8 V' U/ [) {2 r7 O! r
printf("\n");
4 d  b, u6 R0 B; I* X2 Y) i}
' O0 K4 F! ^! Z8 a( J- G3 n} + h5 @7 w7 ^7 O1 b0 C
print(stu) & `. [4 {' Z% r, r7 Y4 `
struct student stu[];
6 R+ N4 w/ [1 V{ int i,j; + _& g" q0 U' E3 k9 C; S
printf("\nNo. Name Sco1 Sco2 Sco3\n"); ' C, K$ T0 t  d/ q+ p
for(i=0;i{ printf("%-6s%-10s",stu.num,stu.name); " ~5 g5 B" w  n# E
for(j=0;j<3;j++)
( g! Y& A$ I: T- hprintf("%-8d",stu.score[j]); ( Q) C6 B$ N, V9 T
printf("\n"); 6 b0 W1 e5 x8 K$ K' r2 \% F/ \% j8 V
}
/ x# \2 p! ?% m$ o& w}
; h3 X& A5 C5 K9 x: A5 tmain() 4 T! @& x: @5 E3 H
{ * u! i$ k0 E% {2 a$ [5 r! x3 k
input(); 3 j. ]/ k3 M3 h+ P3 R8 e; ~4 B% B$ F
print();
& t1 I! l! j$ P3 |}
& y! l# @) ]$ d: c4 y8 f# p==============================================================
1 K: u3 p0 m' k7 n; }- W) ^【程序72
, O- ?; q* |1 r4 |+ {题目:创建一个链表。
0 w# l9 p) V# E$ t& C4 J, J1.程序分析: 0 F/ k7 N) U  `, g. c9 F- A
2.程序源代码: 0 V4 K) _, |/ Q8 ]2 O9 Z. G' k
/*creat a list*/
- w- K) w6 N3 }& R" c, X" d#include "stdlib.h"
" t8 m1 I' `& J3 l#include "stdio.h" ; }; W4 m5 U0 b: n. l; f
struct list 3 E3 y* ^- u; f& E( f2 B3 u+ [, C
{ int data;
/ Y7 \+ c2 ?" n* W. Jstruct list *next; , u7 \/ b, o2 m# M. b( O) E" H: `% V
};
  l* ^7 `: F* G+ x1 @' htypedef struct list node; : h" [+ W9 i$ a3 i" [% x
typedef node *link; ; H4 D: E8 K, `" B1 L. J# Y: f& u
void main() 4 o  G2 W' j8 Q7 N! ?4 Q+ f
{ link ptr,head; * X% s3 j8 X  S& f1 }* q3 k
int num,i;
% T4 T8 q' E* X+ x7 ~. o/ u8 K: ^+ M3 @ptr=(link)malloc(sizeof(node)); ' C5 w5 [* j, W9 i( L
ptr=head; 4 J5 |  Q3 n' y+ S. S
printf("please input 5 numbers==>\n"); : ~, V5 B8 m9 h
for(i=0;i<=4;i++) . S/ u2 J# J3 u, g
{ 0 e- d2 H3 E1 m4 m% x. c+ t
scanf("%d",&num);
' W( z2 p! P! B+ ~ptr->data=num;
7 g0 \: M5 x/ C$ }5 Vptr->next=(link)malloc(sizeof(node));
$ \6 \5 e. u( v% H* gif(i==4) ptr->next=NULL;
( p# W4 l( Q+ C0 B, |else ptr=ptr->next; 7 z5 q! E5 z" _$ ~, x" X% \
} . q  q4 ~( V! F* m( Y
ptr=head; 0 j/ y3 o  Z: a5 p6 p* |
while(ptr!=NULL) 1 K5 y9 c* T- C/ v/ O0 A* p
{ printf("The value is ==>%d\n",ptr->data);
0 A7 ?0 I5 w* Y: t8 Z/ Jptr=ptr->next;
& o7 C# {; [  V& U& U+ W6 S}
+ C) ~  k1 Y& k5 J$ L3 C}
1 g- J- `" I2 S) ^: \  |" W============================================================== 0 H2 ~) \* a8 j7 a* ?+ I" u1 ~- [
【程序737 S# t* t3 b$ D& ~- S2 {: o
题目:反向输出一个链表。 0 ]$ u! I6 t. Y" E
1.程序分析: + B# N5 D9 \, s9 N8 o0 H' S
2.程序源代码:
- a! ~; l& A5 |  T& ^/*reverse output a list*/
, [8 v1 \5 J  F0 b0 s#include "stdlib.h" % F$ P$ W) S2 Z. f
#include "stdio.h" 1 y9 u% r" H" e
struct list
/ Y9 T! q/ @. \" P8 U% h{ int data;
# `# L0 J, q. W$ \/ cstruct list *next; 9 a) y# e+ v# l. D, s( S
};
- u9 o; B& p" G( otypedef struct list node;
; a7 S* t) ^2 B$ Y( [) [$ `typedef node *link;
1 B  z( M  b8 W& k3 `0 x0 g6 V# svoid main()
+ ^! q7 l+ _1 D1 i* t{ link ptr,head,tail; 7 h, t1 p, H( h0 u4 E' E9 u: b
int num,i; 2 M% d7 ~( t6 D! u5 m
tail=(link)malloc(sizeof(node));
9 A: W% b: U' N' d6 j7 utail->next=NULL;
3 r! |/ L" m) ~# bptr=tail; ) r0 [; `8 K" J
printf("\nplease input 5 data==>\n"); 0 [2 I* N/ u& N9 a3 D; |
for(i=0;i<=4;i++)
! m$ u2 ^4 K$ o& _& z{ 9 }7 h4 t: _6 F% L! m0 c
scanf("%d",&num);
$ I  i, Z2 @7 J  Y4 y- vptr->data=num;
1 ]$ G7 Y: d* [' z, Khead=(link)malloc(sizeof(node));
! a5 |  x$ p6 Q3 P8 Vhead->next=ptr; * m5 a  G4 K; W) g- C9 r7 E- _# u
ptr=head;   C! m& d1 E& E: }. |
}
+ l; {( d0 r  Cptr=ptr->next;
# l9 m6 w; b. C: L' m- L* Vwhile(ptr!=NULL)
7 r6 ^  n( i& \{ printf("The value is ==>%d\n",ptr->data);
% z& a9 X- |  @: kptr=ptr->next;
) k3 Y, v5 }6 s9 E0 s}}
" F& j0 s0 x# J4 ^9 d" A==============================================================
; p. v) s( \. a【程序74' m" |5 v/ a1 L- i4 T+ X
题目:连接两个链表。 2 E! o& }" R( G% t1 H1 h
1.程序分析: 2 l3 S# g: Y* t
2.程序源代码: 7 s' [! c; X, y( H# f- M$ c
#include "stdlib.h"
7 Y" a% |) B2 Z& X#include "stdio.h" " G5 q- O. G9 L" n( u% ?' E
struct list 3 X# M& e/ C4 `
{ int data;
' @) G6 s# |+ Dstruct list *next;
( T) |, Y! ~5 F' f' [}; ) o9 n2 s; G1 ?" J
typedef struct list node; ( l! z0 B" K& _+ E. ~* e
typedef node *link;
( ^- q% P4 b/ `) S. B# I7 vlink delete_node(link pointer,link tmp) 5 F6 u( U. y8 x
{if (tmp==NULL) /*delete first node*/ . Z+ Y2 o% }3 l2 S& Z7 W- X
return pointer->next; / p+ q' d8 z# O  C$ _
else
" ?# g0 x( B( d6 X& Y/ X{ if(tmp->next->next==NULL)/*delete last node*/
. P' ]+ Q* W% ^# T/ C; ]tmp->next=NULL;
7 J' d& n; B! N" Y$ N; E4 Pelse /*delete the other node*/ + u6 W6 \4 `$ @! _
tmp->next=tmp->next->next; $ g8 M: W5 g  _, L
return pointer; 5 E4 w2 c6 P4 _( S
}
' G3 g( `9 q( X1 U/ H6 r}
/ _" n) D0 W! ?$ I) b4 mvoid selection_sort(link pointer,int num) - H% X4 l$ l4 e0 q& Z
{ link tmp,btmp;
+ P" Z3 S" S9 u. g) y0 Pint i,min;
4 b( r4 [% W0 l' H1 Gfor(i=0;i {
3 J# U- c7 y' U8 v) v1 I. vtmp=pointer;
, K6 X7 m, S0 K+ kmin=tmp->data; 6 o  O- k3 C+ }2 M: C9 W
btmp=NULL; 9 p3 \% @) O- j6 [, e+ r
while(tmp->next)
* u1 y* g0 e/ h{ if(min>tmp->next->data) ) p$ ~6 [* A9 Z& U4 o9 i( o
{min=tmp->next->data; ! h! {% P* I; y( j, t0 h7 X8 z
btmp=tmp;
- }8 J- y* {$ y# W1 h4 T} 0 @1 Q: @7 K! L
tmp=tmp->next; # w6 T# q) C8 j; M& D
} * A- ?* i5 R% {
printf("\40: %d\n",min); 3 w# S. {+ G/ {$ _0 N' L
pointer=delete_node(pointer,btmp); $ S6 u- }7 c# t$ u" `7 a! g" i
}
7 x5 [% x/ p/ D3 _# ?} 9 y% F* t* Y4 k& j: J
link create_list(int array[],int num) 2 t! y& M& K8 o- k% h' a1 l
{ link tmp1,tmp2,pointer;   _; F" S( k, h0 T, n: ~
int i; . F: m, Y, E4 S1 p* u' X
pointer=(link)malloc(sizeof(node)); $ }# B; F& h7 v1 Z* J$ h, T1 X
pointer->data=array[0];
, S8 y$ H8 m$ Y# r! b3 v9 U# ytmp1=pointer;
- P1 o; s" [+ D+ ~0 Bfor(i=1;i{ tmp2=(link)malloc(sizeof(node));
* |% B3 R9 z) p* k& _9 h& E; Etmp2->next=NULL;
; e- `  w- E: D5 ctmp2->data=array;
3 m' j3 y* ]; k" m& K% ptmp1->next=tmp2;
8 D6 N% N! U2 A: U* Btmp1=tmp1->next; * x; a; C( J- J) ^- G  \+ b& }  V
}
% f8 ~+ ~/ X7 j* w0 q/ j7 N; mreturn pointer;
7 L+ i; y. o  t& x" A1 }# m3 G2 \} 8 ^# e  V% }7 {% g; `1 ^6 |: A" e
link concatenate(link pointer1,link pointer2) . M: e! Y8 |7 j$ v$ |% u" T1 m- h
{ link tmp; 1 u( x( O7 d0 C+ P% X
tmp=pointer1; 5 `7 j/ l5 X0 g0 a. T
while(tmp->next)
% v% B5 A* g! }1 |tmp=tmp->next; 5 L/ ^9 f+ A. N2 M0 W* b8 E
tmp->next=pointer2; " J/ h" C/ M5 ^0 y0 b& ?; N( ]
return pointer1; . t- W+ O- h$ Y+ P
}
/ R; e  x4 N! i0 ]void main(void) 5 [/ M! h9 e1 Q# F' Q) D
{ int arr1[]={3,12,8,9,11}; 0 w! y$ v6 z7 a5 q% p& }0 b
link ptr; 7 b5 U! L1 p' A
ptr=create_list(arr1,5);
: L2 z, M! m  Z1 C$ U' oselection_sort(ptr,5); $ y" B- {# q6 _. o# v* V" Q
}
  e9 E+ }% }/ ~: D8 |3 @==============================================================
% ?" V' E; f" a【程序75  _& E! Z9 M- _6 a0 p
题目:放松一下,算一道简单的题目。
( b* Y$ S: V0 d( ~1.程序分析:
' d) J5 R: T9 U9 e2.程序源代码:
0 F& F, h: @1 O, ^main() 2 ?% {: u  e/ F0 p
{ 6 |0 S+ P- P" ~0 U* \
int i,n;
2 i" A( ]; O' i/ e0 Pfor(i=1;i<5;i++) ! M. u+ i4 W5 Q  s/ v" Z' B
{ n=0;
8 ~- _. q; z8 l" Z4 eif(i!=1)
. T! W# z/ r( V+ a( O5 \- ~n=n+1; ; p8 K9 M8 a3 p% x! W5 A; V! B
if(i==3)
6 O# p. f/ b: y3 c! x% D  C/ ln=n+1; : T, L# _+ h# v0 O
if(i==4)
) c: `4 j, Q# B& w* Zn=n+1;
: Q7 i1 B2 ~3 p3 h$ H8 r% ]if(i!=4)
- }3 X# p6 L) K/ e! q/ a5 p8 o6 f8 hn=n+1;   H7 o) N# y8 [: T# _4 f
if(n==3) 6 R2 U/ d" t. `( d% \5 T; O6 I
printf("zhu hao shi de shi:%c",64+i);
; B" b' u7 y# t3 Z}
) b7 ]5 }' W2 {2 Z, ]! U, L}
! o# e) M* m" y============================================================== ) b! G/ P" E1 C" R$ v& w9 f1 M+ T
【程序76
$ T5 Y1 m5 i5 }; v4 C. D7 y题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数
5 t. W/ N1 F# ^+ R- m; J1 h- ^1/1+1/3+...+1/n(利用指针函数) / D1 |7 ^. O' X9 J) r+ R6 ]
1.程序分析: 6 z! M1 A3 b' u' Z2 X, r: t% G) n
2.程序源代码:
( [: h$ C' [3 x7 {2 j. ~; Mmain() 8 L- F( w/ P  d6 I! D; q( }- h% n# o
#include "stdio.h" " d7 ^, s$ J9 z* u9 y
main() 5 _) z6 [1 d! g, x
{ ! }. ^# p7 |3 H; q: i  E4 |
float peven(),podd(),dcall();
! f/ u6 s7 ], S5 r, w! n+ c, U& Tfloat sum; ' e3 S3 R+ D) r) T' E
int n;
; H7 w7 R* B; c" x4 `0 b" ywhile (1) 3 J6 u/ [& q( [' g& [- `5 n
{
  ?' Y* {! f2 [: F' F% fscanf("%d",&n); - K* ^* i% T% u8 r# {
if(n>1) - t6 b9 L% V+ {7 D! i8 E3 F* i
break; , k) W3 j' r2 k2 J
}
6 t& p' K0 X, |$ `5 jif(n%2==0)
2 D2 Z; e7 w6 P1 V$ U{
, a0 K( K4 n, R2 R3 S1 x( S; Pprintf("Even=");
- `' F3 e) f, R; v6 I4 W" wsum=dcall(peven,n);
  G6 }9 y. ~+ h6 P}
2 f) d+ Z. p9 P/ M' u3 u' Yelse
4 m1 B' Q& N; I" \3 |: W{
5 h" K- ?* ^' z5 X# ?printf("Odd=");
/ p! q' J/ |0 O2 }) e6 _sum=dcall(podd,n); ! W) @* ~- D( @& i# y( T
} ) ]" |7 b5 w) J$ X
printf("%f",sum); * [) T* Z5 G9 S/ d
} 6 J+ ~& P* B5 J/ i! A
float peven(int n) # ]3 m! j8 n+ A* J$ u
{ , {, `+ I, M# [
float s; ' Q* ]; p2 R7 U$ m! q6 [7 u
int i; & T" [4 U, ]% e" }+ x! K
s=1; $ X/ L9 M: Q' y7 {1 E
for(i=2;i<=n;i+=2)
2 `8 N1 e2 g( I( [s+=1/(float)i; # Q* L( ]( d; |: l# L
return(s);
8 F/ l0 r$ H/ E0 b" r6 R# O  ~! y}
- ~8 G; @$ [! a/ |& Afloat podd(n)
0 V  |0 T' {) ?) \int n;
& p' P/ z) a( Q: i{
* n0 n3 F4 o5 g; K! nfloat s; 8 c: G; S6 m. e; f
int i;
+ w2 G" Y6 b" u4 ^, }; Q1 l5 Rs=0; ( i! r7 U3 l5 }0 [$ H- I; ^
for(i=1;i<=n;i+=2)
9 ^; o2 C7 w7 w* Z9 Ps+=1/(float)i; 9 r- E/ n* B0 M5 l: h
return(s);
* A7 t  F2 N1 b% K, ?$ x} . z0 E( U) U5 M6 i5 R
float dcall(fp,n) ' u! V( T  X8 R
float (*fp)();
" e! X1 s* w9 A* Z* A* P9 wint n; * v0 M: R3 A, Z: X, l
{
) S4 |0 y# L8 x2 L5 A1 A  [2 xfloat s; / X1 e: \0 [9 o! b
s=(*fp)(n); : F# ?) m- O" M- [9 t6 ^
return(s);
9 `" g9 v- w4 J' W. r. Q} & j2 ?; N5 ^8 g7 b6 g
============================================================== 1 i, ]! j. j$ m( F

: C6 P1 q: ]: r! O
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2025-2-19 04:43 , Processed in 0.062937 second(s), 33 queries , Gzip On.

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

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

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