找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

C语言经典算法67-76

[复制链接]

114

主题

136

帖子

1000

积分

四级会员(40)

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

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

EDA365欢迎您!

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

x
【程序675 s) W3 O7 j5 e3 Z9 n+ T
题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 7 Q- F4 j0 {0 d4 h) w
1.程序分析:谭浩强的书中答案有问题。 + T/ i( M( x' k; y
2.程序源代码:
+ M8 m, S9 C; Q4 Z! \$ xmain()
) _2 l* f# N6 `8 f8 y& d8 n{
3 Q; L) m3 p9 {8 Iint number[10]; 5 o7 M5 s- W6 e( M+ [* S! ?3 B
input(number); $ O8 d. {& }' i% ]9 p
max_min(number); - N2 s3 p( r) H3 o- K' Z
output(number);
( h8 b  t5 r/ O# {6 S} . A; I# w' p+ G6 I/ ]1 [' P
input(number)
& _7 [+ l7 A9 P8 ]int number[10];
, x4 w" v8 F1 n5 X' k; S5 T{int i; & x; ?$ @3 b3 c/ c% k- Q
for(i=0;i<9;i++) ! A; `1 V, x" w" c' r
scanf("%d,",&number); , r7 C# ]& v2 ~0 K4 D; n3 [/ |
scanf("%d",&number[9]); + E/ u9 o; Q  k
} & C+ @% [% R7 i8 m, a1 }
max_min(array) 5 L' X; d3 A; r% Z) {( ^% ~% E+ @
int array[10];
$ Q/ M0 n$ u7 A! r# K) R6 ?$ {{int *max,*min,k,l; 6 m7 G/ T# t* t  T
int *p,*arr_end;
4 [  t4 U* ?* s' V) c/ R7 carr_end=array+10;
" x1 a" Y$ \* `* Pmax=min=array; 2 b* y0 k) ~) z" O( W+ q  }& W' t
for(p=array+1;p if(*p>*max) max=p; : u& c. H: l3 R6 d
else if(*p<*min) min=p; 2 o. `+ x3 k. K: i* n% Y, k
k=*max; 4 M8 i0 A5 P/ }+ X; y, @
l=*min;
) J/ @' D0 Z9 I*p=array[0];array[0]=l;l=*p; $ O) A/ ~4 z0 p
*p=array[9];array[9]=k;k=*p;
/ {, k, f7 l0 P% {return;
9 s' X. H/ h6 F% x. T} ' i3 |% |0 X" I9 V
output(array)
+ |( X$ Y+ M* c; w' Vint array[10];
$ J6 q/ c2 K3 l8 I- s3 z! y{ int *p;
1 g4 s! s# V( B! q* u, A  z& Ufor(p=array;p printf("%d,",*p);
$ f' |5 k; |! ?3 [" w. F* U1 O  ^printf("%d\n",array[9]);
. g/ }. [5 L- o( m3 c/ z" u} " k& L% R* j3 T, ~6 N, b. q$ O
============================================================== $ k+ Y" M  d; M, B5 `5 L
【程序683 K* g  A2 K5 \; o# b
题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
5 d% G( s1 G& r- R! T1.程序分析:
: f' X9 l% P: G2.程序源代码: . g$ ?) R" o  A* v9 F& X1 C% i
main() % X1 r- ]& g. q3 s0 M' f
{ 7 d5 g3 B6 d# H/ f8 a. u; t$ S
int number[20],n,m,i; + I% p% ?4 Y/ w
printf("the total numbers is:");
  Z* m2 ^7 a( {( @. n% hscanf("%d",&n);
" l# r' z0 K5 D- Cprintf("back m:"); : c) Q7 ^  \" ?
scanf("%d",&m); : [* I0 O: t. o8 P) |. A2 `
for(i=0;i scanf("%d,",&number); / u5 `5 L) ~- W' |+ k
scanf("%d",&number[n-1]);
- O6 n4 S8 J0 Vmove(number,n,m); # k- J/ L, C" q. r, Z4 a
for(i=0;i printf("%d,",number);
8 @- l1 L$ u5 e  c2 Qprintf("%d",number[n-1]); " J( F8 U+ s3 I0 s& L) t& {6 E4 V
} , E" N) `- \) y4 o/ q0 ^
move(array,n,m)
) _* l8 m2 `! U, `( zint n,m,array[20];
( B6 j- z6 O3 A{ 3 G; A) Z7 F# _6 a
int *p,array_end;
* m3 Z% [- ^; y2 ~+ s, L  P1 harray_end=*(array+n-1);
' ]! Y1 }9 k6 [; K, W% _$ ^for(p=array+n-1;p>array;p--)
! X9 a; ]; Q" \*p=*(p-1);
# m0 w; g  g: k+ M7 K*array=array_end;
, O  i- i! j, q6 l" ^m--;
4 g, r& o/ ]; Y2 N/ xif(m>0) move(array,n,m); 3 ?& \6 f* E, ?# O- U
}
+ h! Z2 Z! S7 X  J7 W+ `==============================================================
! J. d' V7 |/ _【程序69
, O# X7 Q% i) R9 ^: n* R' @5 V题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从13报数),凡报到3的人退出
( ~8 X" \( I( k, ^/ R圈子,问最后留下的是原来第几号的那位。信盈达嵌入式企鹅要妖气呜呜吧久零就要
7 O& `; _" t& i6 ?: O6 U4 T1. 程序分析:
' P' V4 \- }% S9 g( O% P9 Z: E/ f  _2.程序源代码:
8 d, l5 D0 L/ E$ `3 R* f+ a0 ~! R. Y) {#define nmax 50   G( R0 G! r& x0 o) o8 Z/ N
main()
$ C0 N, V. j- a4 y5 L: v{ ( ^" O7 `4 q& \7 n$ m+ }' ~: U
int i,k,m,n,num[nmax],*p;
" Q/ A7 Z: h( ~9 |5 ?printf("please input the total of numbers:");
9 @4 F/ `" T) f% Bscanf("%d",&n);
$ o$ f* r2 P5 v8 _2 h: Cp=num;   A2 y+ x% @9 \9 i
for(i=0;i *(p+i)=i+1; 3 r1 b- Y( g4 z/ b: ]0 Z
i=0; + [' ?# X4 C8 `" p$ [% H: J2 w- S
k=0; + {+ r5 {4 W) s1 |0 W5 }
m=0;
6 B+ D' ?- g. A2 T& A2 B; swhile(m { . N* a5 h, h: K, _5 h$ j5 L# [2 o
if(*(p+i)!=0) k++; , D- g# X3 K( {3 j- X
if(k==3)
' {; x. d# q. [1 L# o" }{ *(p+i)=0;
3 y/ a- S4 V5 a' ~k=0;
5 ~) X+ r4 S; e3 Q0 r# Z6 r+ Vm++;
9 a9 h6 w  q1 U} : O; c2 F- D9 q, `! R1 y
i++; # t0 k; H5 F; z( z5 i  h
if(i==n) i=0; , o  X2 E# H! d
} % k% {0 V6 ^- c5 R
while(*p==0) p++;
& i3 t) e# q* Y* Y- }- pprintf("%d is left\n",*p);
: g4 ^, I$ _. O6 r  K8 M. h} ' _6 W, Q$ Q" f3 W! i1 i8 O. ?
============================================================== 8 z0 j, N% D& R
【程序702 G6 w0 S: J. {3 N9 L' N
题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
! Z- w: w( M- G* o1 K! ~1.程序分析:
0 z! ^/ h5 A8 A1 G* A% d2.程序源代码: ( b$ \$ a: O7 z$ ]
main()
% r7 P& q& i+ h, Z  [3 J$ p{ : A1 h7 N3 O" N4 t# a
int len;
2 @, L6 L9 a# m% F2 @' Q& bchar *str[20];
2 a# }' S& f. S5 D" f: hprintf("please input a string:\n");
% Q; `. l& i: l# K# S7 @scanf("%s",str);
' }& n( C9 [- c6 W* z( q/ A3 ilen=length(str); ! c/ r5 K6 m  v+ A$ n
printf("the string has %d characters.",len); ' O# j& m. E  N$ K7 L/ m
}
& j* Z- k& b* [0 u, J- e, ulength(p)
. }! I% t, n0 y8 v9 \: k; wchar *p; ' J# X: w- Z! u) S1 r
{ 1 ?+ k  [4 d, ?6 J+ O4 d5 J1 P% F
int n;
1 g1 w6 O/ H* Dn=0;
: T9 r$ R7 O, m- |' J4 vwhile(*p!='\0')
7 k5 d/ r8 y- g7 `{ ( s! X: i! H8 Y" f
n++; + [8 D# C1 _* E5 w/ ]3 u. `
p++; : C$ [  v3 u- D* G, w
}
. m& q- w3 f* o2 }' wreturn n; , d+ Z5 W! H8 D' E" k8 Z. ?
} + y: Q0 o/ e" n& l
【程序71
$ r$ W# S2 [7 P+ b: m& o, V. m1 N  M题目:编写input()output()函数输入,输出5个学生的数据记录。 3 ^& v6 k, G) }3 u; A* F! M' p
1.程序分析:
* \4 [0 f6 q$ H3 }! d) O2.程序源代码:
, k  m+ i4 j6 s& n! R#define N 5 6 q1 ~7 [- @+ u& T; }( |
struct student
4 ]9 G: Z8 S- S2 K4 m  a) s{ char num[6]; : ^. t* l0 n+ Y6 l- H  }. x
char name[8]; - ^, Z$ l  f, ^% b
int score[4]; * u2 c$ X- L5 j* C% e  V) i
} stu[N]; / q3 f0 X1 J" u8 P$ \% K
input(stu) 2 P9 o; W: Z* \; G
struct student stu[]; $ w0 Q6 V8 R, p0 u* e8 J! @$ t
{ int i,j;   o( h2 ]1 v9 N+ p
for(i=0;i { printf("\n please input %d of %d\n",i+1,N);
9 b" }9 W) @$ e2 f! iprintf("num: ");
: M$ O% J! f5 Yscanf("%s",stu.num);
4 T7 x6 D- ^0 i5 X: Dprintf("name: "); / {1 Y! G4 N: x, }
scanf("%s",stu.name); : V6 C! F) G2 h5 V7 m
for(j=0;j<3;j++)
, c) `$ P9 S6 D- ~{ printf("score %d.",j+1); 2 V- v- R) T$ F" A) Q" j* d
scanf("%d",&stu.score[j]);
2 g4 u3 i: B9 h} ( N) f: v5 n% \9 U
printf("\n");
; ^$ e5 J: c( ^3 x}
1 X8 E$ d) Y8 W} 8 v4 [2 |1 ^" i: q0 V# M
print(stu) ) f' k8 j2 F, J& q  l: P! t
struct student stu[];
; }& U0 |' y9 Z* k6 V8 E4 z! e$ G, S{ int i,j;
3 f* X1 y5 {& g, M4 J' yprintf("\nNo. Name Sco1 Sco2 Sco3\n");
! U+ g+ a/ q! e0 Q8 Pfor(i=0;i{ printf("%-6s%-10s",stu.num,stu.name);
  |. Q7 Q# Z" E; f& A. G! Vfor(j=0;j<3;j++)
! ]7 }2 i$ x; r% E1 f- U! Uprintf("%-8d",stu.score[j]); 3 c/ g/ }" C* D- t0 p
printf("\n");
9 B1 A; f, V  c/ ?0 c: c}
: c. U" I8 e- P' P- \}
$ ?- A( a( W9 I4 U6 W, D5 p' }; fmain() ; I/ J% J+ a2 n* ]9 y* o
{
; d! j$ Q1 q2 ^+ Y- k4 oinput();
( L3 ^: c9 P# |+ b) Z" C, ]print(); + D6 h* g" V1 k
} 1 e7 h% q$ C5 v0 B* h/ l4 |/ g
==============================================================
& k: M6 |; c8 F0 {& T【程序72
7 b/ [9 ^; G1 d; }5 W( C& ]( ^6 P+ Y% c题目:创建一个链表。
5 X+ _; p* I# U# `! P% K1.程序分析: * y$ b  z' q# A% \/ q" L# J
2.程序源代码: - R# ^4 X1 G6 ^8 U0 G! i- z
/*creat a list*/
# k% c: z3 ?4 F0 O% N3 _- q#include "stdlib.h" ' v7 N# T8 e7 n3 P# F/ t0 T2 w; R
#include "stdio.h" 6 Y& [* {+ K5 q! ~4 o3 a* O
struct list 4 ]* j  D7 g9 r, Z
{ int data; 6 }5 x' B5 V. g7 s7 V
struct list *next;
! T: g+ G, i! j2 c! T: n4 C% I};
& x: a# y6 [2 C7 Qtypedef struct list node;
1 l; m& @; C8 P9 Utypedef node *link;
4 w2 m# B& E  {# \5 q$ Lvoid main()
, s% n- B3 Q) ~* h0 n4 h" |{ link ptr,head; 4 ?- I  |) {8 E( E
int num,i; . n3 ^# u* G8 K$ {3 `
ptr=(link)malloc(sizeof(node));
3 Q' F( ^1 D9 Q' R, O5 vptr=head; * E. \1 k1 u7 T$ m7 F. R6 O
printf("please input 5 numbers==>\n"); $ ?# M1 U* j/ i1 M1 t# k5 G* _
for(i=0;i<=4;i++)
* N8 c3 g# a7 M/ s7 ~  m{ 0 a9 h+ N! [) p. Z
scanf("%d",&num); ' M" v6 U7 F& X2 k- {
ptr->data=num;
( O2 F! Q. e  Z4 Tptr->next=(link)malloc(sizeof(node));
6 K- P; n2 \8 d& fif(i==4) ptr->next=NULL; 9 w9 T4 h2 _& C# e  r$ @% Y
else ptr=ptr->next; 4 i* G3 L8 g) P- r' C
} + x, K6 \( h) [6 b7 |7 N. L
ptr=head;
* h. g6 {! M5 K. e  y! cwhile(ptr!=NULL) 8 R9 M2 }7 @3 p+ C  q, }4 Q
{ printf("The value is ==>%d\n",ptr->data); - ~; d' h3 q* x( u  c" y5 {  P
ptr=ptr->next; % K4 J6 T2 z; U* j& p7 a5 |7 r
}   q- U! `0 n  t  `- @! D  F& N$ d
} 4 m$ h0 v0 C: D3 R7 ]5 C7 L" Y
============================================================== ( ~% A" J. h3 p( e1 f5 L( s
【程序73/ F# T( j% m4 ~$ r( Q9 R* E$ p6 G
题目:反向输出一个链表。 7 i" M/ J7 t* s$ \5 C. p" t
1.程序分析:
) U( x: |( N2 o' ~+ Y& _- F2.程序源代码:
( e9 N, B5 v1 ]4 A( j& ^3 c: b/*reverse output a list*/
* y. A/ Z  Y/ y1 _#include "stdlib.h"
1 H9 U4 z( o) M$ D+ b; N! v; e5 U# o#include "stdio.h" 7 x. t0 |0 y  ]% O
struct list * `+ h- f+ U3 _! Y# e' R- j
{ int data;
& }. g5 K& [$ x8 i& xstruct list *next; 7 t; P9 u5 d! Y' l# M2 G. G
}; ! a3 l9 L  v- X4 I
typedef struct list node; ) u' y' u8 z4 O# b7 m
typedef node *link;
) t4 p$ U' s- z- j; \void main() # m; A( z2 Q' F; d
{ link ptr,head,tail; ; S0 y- |! g9 p' I  y" {2 D7 e' E
int num,i; $ @) q' Y; g" A! r, ]5 x
tail=(link)malloc(sizeof(node));
6 _0 T& j, E1 ~% @2 E2 N" htail->next=NULL; - B# ~# y% P8 [
ptr=tail; 5 Z( M) Y* _& Y( a6 ?" d: o1 P; x
printf("\nplease input 5 data==>\n");
- Q; x5 F) G2 W' Tfor(i=0;i<=4;i++)
) ?# y8 r8 o: q& n{ 7 W- H) F# d  P/ X7 x( V
scanf("%d",&num); : {+ p3 m8 u: l) v  U$ p
ptr->data=num;
3 b! D9 G8 Q- G! T* Fhead=(link)malloc(sizeof(node)); 1 j$ g% l5 [) J3 B5 S( u2 r# w
head->next=ptr;
- X5 ?9 z/ J2 K4 V$ Z1 P: }ptr=head;
- Y  X: ~+ @% E7 X; f& \% ?4 K5 E}
. [& Y  }% `" w, v+ Pptr=ptr->next;
7 ^4 }1 U6 g- _) n8 L" i$ ?while(ptr!=NULL) % f+ K; `) w+ h
{ printf("The value is ==>%d\n",ptr->data);
. h2 @. [# t6 p: dptr=ptr->next;
% E3 }9 l; I" r" p3 }8 [" }- h}}
- V+ Z$ v  e2 f3 `==============================================================
0 W' ]% L0 M: }  y( ^7 k' u【程序74, N6 n" B6 Y, s- N9 [
题目:连接两个链表。 2 F0 @, D6 j, s8 k
1.程序分析: 9 G3 b4 r2 Q% M' H5 u
2.程序源代码: 5 {# \0 g  Z3 M5 |4 h. m8 B
#include "stdlib.h"
- d7 T2 \: O  l% n& n#include "stdio.h"
* w; }9 K* m1 ostruct list " U7 y) e# A& O1 N
{ int data; 5 |/ C8 L2 C4 l6 t  }/ q$ t; C
struct list *next;
2 k: k& I' ?# K& F0 Q}; ) y& d8 S& c/ i% l4 }. ~
typedef struct list node;
4 c- N4 @$ h5 S$ Z- q$ }' gtypedef node *link;
$ G3 Y+ E! w' O. Z6 ]# N4 }6 hlink delete_node(link pointer,link tmp) * e+ M7 R4 U2 I2 y$ \5 r
{if (tmp==NULL) /*delete first node*/
) j; p; A. G( v7 e5 g0 V+ F1 xreturn pointer->next;
! R  b- }/ o1 l# U9 telse 0 w% N* r6 C: k0 N' n
{ if(tmp->next->next==NULL)/*delete last node*/ 8 B8 [9 R# C: q6 M4 l# Y" f$ s
tmp->next=NULL;
; @+ S! ]- l0 u+ ?% ^else /*delete the other node*/
; O& y# D" _9 q2 T6 ^tmp->next=tmp->next->next;
, \- I3 M( J% r$ Dreturn pointer; * h, q. V( R' k; y# M8 q
}
0 l( o# c+ O0 v, l4 v0 H}
8 N" N3 O" E/ j1 N: wvoid selection_sort(link pointer,int num)
3 [+ Q# w3 k3 v$ ]! e6 v9 M% j/ ?  U{ link tmp,btmp;
+ F3 d6 I( a* O" o* F" \int i,min;
7 j) g, o1 i3 h$ g: N0 Z) @, `for(i=0;i {
0 N9 r, m& ^& m- k* Y9 q* V: Ytmp=pointer;
9 e9 V: z8 i; R5 Xmin=tmp->data;   R1 \$ C9 j! a/ K
btmp=NULL; / ]0 s+ \+ r& i
while(tmp->next) 7 C4 Q8 @; f, w5 Q7 |
{ if(min>tmp->next->data) 1 Y+ P& F  G' v
{min=tmp->next->data;
7 g+ x) z3 `4 R; M- X: d9 g8 Ubtmp=tmp; $ u/ z. x& }4 L3 W
}
9 u2 v. L( F! f: C& N9 C1 B2 Ztmp=tmp->next;
$ p" c* g% H: F4 c0 S1 d. i2 c}
/ K; J5 D% n; D: u5 tprintf("\40: %d\n",min);
% M2 z$ {/ _) k9 D5 qpointer=delete_node(pointer,btmp);
! E' P: ^! `; u) Z2 o& Q4 G5 D6 h0 t! U}
" |  z( X1 X  C2 {5 M9 i} ; P3 Z: G! a& l! J- {
link create_list(int array[],int num) ; I8 n& S# A; O2 |- c5 ]
{ link tmp1,tmp2,pointer;
/ ~$ r% D) i' T1 t) S# k9 }" a6 Mint i;
/ i6 q3 x( J5 Cpointer=(link)malloc(sizeof(node));   Q6 s/ p% l' v% ?$ ?* n3 [
pointer->data=array[0];
* S1 n8 z* W5 j, M4 |- e9 B6 |tmp1=pointer;
3 W$ m. ^8 p" P7 ~6 l( _1 Efor(i=1;i{ tmp2=(link)malloc(sizeof(node));
4 e% _* o; \* z# k# w' {( J6 h% Ktmp2->next=NULL; % P( B7 r+ A' u: e: e3 G
tmp2->data=array;
) Z+ j. x6 f  V! Otmp1->next=tmp2; 7 |# d! L) q' ?; S: M( {
tmp1=tmp1->next; + V$ D5 d/ U$ U. j% ~  J2 M
} , K# h. u2 w, x: u
return pointer;
5 [( F9 b' c, M2 M! }7 x} ( f9 e) T( f- s9 d) j& i" N
link concatenate(link pointer1,link pointer2)
1 h6 ?. K# A2 H  O! b1 X{ link tmp;
/ L) |& }0 i% y) `, Ttmp=pointer1; 8 `2 m; u# V. b! R( [* J- b
while(tmp->next) & s' ?$ @0 l3 n% ~& g* ^
tmp=tmp->next; ; k1 s0 s3 _( I8 E0 T
tmp->next=pointer2;
% Z/ C7 D) _0 zreturn pointer1;
9 a+ ]. @( P7 a* Q. R7 s. k# i+ _}   s. _: R. p* a$ r
void main(void) & p5 o. h2 [$ S* c
{ int arr1[]={3,12,8,9,11};
  F( i1 l6 a& H9 f& [4 N; wlink ptr;
, ^$ V+ N% }  K  s2 C9 S8 @ptr=create_list(arr1,5);
( d5 \/ t) T6 H8 k  l) jselection_sort(ptr,5); 5 b9 B+ I2 b: A- K/ W" F
}
4 N2 V9 `' o. M==============================================================
& |" h8 \& {9 f, H" \* W6 u' l! N【程序75
+ `! }& Z( O6 v( o" A题目:放松一下,算一道简单的题目。 " X, ~/ p& t& G: L; ]$ }
1.程序分析:   {$ b, \# K$ x) g
2.程序源代码:
: q: O. t: }/ r( qmain() * C/ }1 d0 ~3 m) k. l* L0 l/ Y% g
{
( ^2 l- r8 a5 }+ Uint i,n; - z1 W8 p. K: J2 L; V, w
for(i=1;i<5;i++) 7 H  `0 T" `$ V: x4 q
{ n=0; : `4 ]: Z( A8 R, l1 p9 q) q- d8 i9 B
if(i!=1)
& |' ?8 k: x' b) x0 ]% V- Y; R+ Pn=n+1;
8 N4 h1 u8 s7 a* ~* Fif(i==3)
5 m% _3 F% X+ C! }n=n+1;
! u& G7 _! Z& N, {" Mif(i==4) , [* w" }2 B/ l" b3 i
n=n+1;
5 ~7 t  m& t! ?9 `if(i!=4) 9 D6 c' E: ]8 S3 [) x3 h
n=n+1;
! T/ \3 z. J1 Q/ B8 V' T2 oif(n==3) 1 d' a4 n) N9 r; E# H
printf("zhu hao shi de shi:%c",64+i); 5 K4 v- ^! C9 ?# C6 H0 @/ X
}
! b# t/ C0 U: l' y& J5 ?} ( r( p) c6 ^- C+ i
==============================================================
$ A& I& m3 a9 Z; A8 S8 |【程序761 r4 Y+ f3 w# A3 Y" o) c
题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数 2 j$ B2 Z+ J* C* a$ @" f  c
1/1+1/3+...+1/n(利用指针函数) 0 a2 i1 t* e' I% {1 ~
1.程序分析: , m: |+ @+ e  c/ s
2.程序源代码:
# l9 M7 y  K) {" i9 nmain() + O" e, t6 b  ^* }0 g, |+ V
#include "stdio.h" 7 o. n  v  d6 W* u. f
main() 0 n! h& g& F$ F6 S4 N" n' J
{ . R8 o1 a- g7 O, p
float peven(),podd(),dcall();
* T2 y9 j4 K& n+ `4 `$ X0 wfloat sum; " a  A9 T7 w. Z" b+ Q
int n; + B% r+ _6 c. ~9 x
while (1)
: B( {3 L# ^3 D' c{
$ c7 y4 `% K5 b# Cscanf("%d",&n); $ W: X5 }( X; `: ^' ]8 L
if(n>1)
2 O3 d7 A8 _/ G% N. w6 q5 wbreak; 0 [9 k) d9 r$ w; V
} : @, H% R( l, E, m. b* w
if(n%2==0)
% |) f9 U* O7 c0 I0 y{
; q  @+ {! B$ I# _  s2 H2 v6 }printf("Even=");
5 q% {: E  u, }$ ]5 H( ?sum=dcall(peven,n);
5 h! c, H0 m2 u, @* \0 j! h}
& {6 ]' g7 y* P, @' relse 8 `# e( y( s/ d
{
! w; N* N: Z7 g8 tprintf("Odd=");   J/ _" }4 {; h
sum=dcall(podd,n); 8 P8 m- s0 l- b0 J# M
} : M% P( w. s( o! `" C, Z
printf("%f",sum);
& f' r2 n" F+ a" Z} 0 V! V/ ?8 o( L# |! g2 o9 r
float peven(int n)
/ n1 t2 T4 O4 u: }' s, j( ?{ * u$ E. g+ \' |8 t/ y; c: w* s
float s; # R" t3 u* m- f
int i;
5 Y# [" W/ k  [s=1; ( \+ h2 A: J) V# I6 b
for(i=2;i<=n;i+=2)
+ i  v6 K  v, r" c+ Fs+=1/(float)i;
7 ~8 ~. d* K, N$ |$ Z" dreturn(s); 1 q$ I/ u  T2 i
} 8 \: T1 D$ F" y, Q' t
float podd(n) - \3 v6 v& R3 y* t' z9 r; M' R5 ]
int n;
, Q! _5 c4 H. w" @3 U# n# ?( O' F{
; [" @' E7 F: k2 f: Efloat s;
$ k* K$ e* J8 E" C7 `+ K3 D& ]' l0 ~/ {int i; 5 L) T, Y; U* ?) R+ Z4 C9 G
s=0;
! O* G; c) _2 Gfor(i=1;i<=n;i+=2)
9 Q& b7 s" F2 i  j8 S  ?. ^s+=1/(float)i;
2 A+ V6 l5 u9 m" X$ nreturn(s);
6 c" Y2 T4 J7 v: p1 T% X! Z- b7 @}
- U* i7 T) c/ L8 mfloat dcall(fp,n) " e7 r% @; T# c7 i
float (*fp)(); + D2 H! l. K1 G. s7 Q
int n;
2 Y, m/ `( M* a( c{ - K0 O, D( Q1 O0 d, L' k( u2 k& O
float s;
1 F# Z5 O) G' |+ L0 o- Y* J/ s" ks=(*fp)(n);
/ m/ H: c: T, S, B5 t, s7 kreturn(s);
2 V) r1 g( b' `; \}
8 T* f6 H; e1 y0 `& t6 x( }============================================================== 9 H* f: u- J# [4 Q
7 M/ K6 W  p2 N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

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

GMT+8, 2025-7-1 04:36 , Processed in 0.057154 second(s), 31 queries , Gzip On.

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

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

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