找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

C语言经典算法67-76

[复制链接]

114

主题

136

帖子

1000

积分

四级会员(40)

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

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

EDA365欢迎您!

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

x
【程序67' D! m! j! \8 W, l8 b3 k, d$ x
题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
& `# B6 ]8 ]  V  p3 {1.程序分析:谭浩强的书中答案有问题。 % c( I) N2 U; n
2.程序源代码:
0 U0 U; l6 B- A' ]. B# [4 V/ w$ Ymain() 5 z* C4 y% o+ R6 i- G7 o/ T
{
# v, `; r0 Z/ [. E* B& C1 Y1 G4 aint number[10]; " K7 y) J) b5 z4 A6 B. z
input(number);
# p$ E5 C6 S( ?2 Mmax_min(number); * n9 |0 h) K; W9 v& [6 j/ ^1 g
output(number);
$ R/ D2 w* }8 i# P5 z8 b* @}
3 f- i+ @( Y2 t' ?. {+ Yinput(number) ' L3 g: f% c7 q
int number[10];
: K( d3 O. W; M. |& E% N{int i; ( [, q2 n2 }/ S: B+ F9 P
for(i=0;i<9;i++) 2 W. d: a4 r! [  B
scanf("%d,",&number);
3 b* N; u3 c) S0 q$ q4 ?scanf("%d",&number[9]);
4 u, l! ^" [6 C/ b3 h1 y: h; j} ) q1 y% i8 G6 m6 z
max_min(array)
' x! U! ~/ J# e) l0 a7 e9 Nint array[10];
3 E5 k$ ]+ p8 ?1 n; N1 i3 E5 l{int *max,*min,k,l;
: `  l% }* g) E7 ?4 Zint *p,*arr_end; ; M& [) b. r. e6 q
arr_end=array+10; - D2 h/ A% v4 L4 Q4 i
max=min=array;
' u* c9 Z% j0 vfor(p=array+1;p if(*p>*max) max=p; # s( M9 B( p3 ~
else if(*p<*min) min=p; $ x; m( d# y( S  n/ t* P; y$ x
k=*max; ! e; M; [7 A1 S: n- b; }+ B6 r
l=*min; ( h9 T# H* L% r' X
*p=array[0];array[0]=l;l=*p;
$ D6 [! }& R. I7 y4 W- b! t6 \*p=array[9];array[9]=k;k=*p; - v/ j# ]2 u- n& D8 o: A. C$ C
return;
# o/ Q+ x1 @2 a+ ?: J}
/ w' V) q( C+ e, T) g7 @$ X* ?$ u9 woutput(array)
1 B& j- |9 O4 G6 `int array[10];
, h4 X3 y. Q3 Z' s{ int *p; - p: D( S) t: [8 U
for(p=array;p printf("%d,",*p); / w) U. r7 Q8 U1 v
printf("%d\n",array[9]); ' }" l- H2 x% b- [7 w9 Z
} 0 D% A2 r4 e. a6 |
==============================================================
1 @& k6 A  D( C! P2 u! W. b【程序68
% c- |! D3 |$ O8 T+ w1 a7 K题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数 ( n% D( `( U# h0 E3 j4 d( j
1.程序分析: ! F; r  l& s8 g- I5 F' @- D
2.程序源代码: # m' P; H: R9 i5 p" n) {3 h
main()
3 a( m7 _1 R- e2 H0 }{ 2 |/ J. W0 h& d
int number[20],n,m,i;
6 V& t  Y4 a5 }printf("the total numbers is:");
& O, J, O' L. I9 u; U3 Gscanf("%d",&n);
* m2 P4 ]7 W7 Lprintf("back m:");
" A* W  L+ \/ m9 Lscanf("%d",&m); / u- n# D" G/ V5 w8 Q! ~
for(i=0;i scanf("%d,",&number); 7 i# t! i* m5 l$ D( `- }
scanf("%d",&number[n-1]); - Q- J, f/ `8 S) T1 c
move(number,n,m);
+ v& c% R5 p8 S6 R1 ~8 _7 vfor(i=0;i printf("%d,",number);
& {8 M" _4 V: S9 lprintf("%d",number[n-1]);
1 u8 i' D- H; c% ^: [' a}
$ @0 m+ b$ O3 ^) w* b1 ~/ Hmove(array,n,m)
5 t' l$ K4 O! r+ n6 L7 aint n,m,array[20]; - Y, a& _' m$ D# a+ k( c
{ % f6 K2 E4 y& g, E& w/ Q
int *p,array_end;
6 o0 x  I, \2 U! n5 darray_end=*(array+n-1); ) S( b- l# ^' p6 s) t( X
for(p=array+n-1;p>array;p--)
" u9 Q8 ~# b5 L5 h( n% M*p=*(p-1);
; `/ o3 d; `, \- r3 }3 p* g: }*array=array_end;
* ^( K0 s7 S" G) s% v6 k* `6 }m--; ) w. ~6 a2 ]8 I6 T7 S) Z6 `/ g
if(m>0) move(array,n,m); : O* N: U6 ~  Z2 v0 o8 T- U9 R
}
" P$ C: P1 J' l5 n) G- ]==============================================================
) {9 L! x% o; G0 x! R6 X! S# i【程序69
: x9 p4 o! D9 T; J/ E. d题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从13报数),凡报到3的人退出
6 l6 r& x& o: E2 }9 ?1 S  _7 v圈子,问最后留下的是原来第几号的那位。信盈达嵌入式企鹅要妖气呜呜吧久零就要 % u2 w! d4 R  }# U  D
1. 程序分析:
6 x& [) `7 O7 V* q5 s9 [- y2.程序源代码: + W4 R$ L: T/ l& F
#define nmax 50
5 S- x1 S  v. |0 Vmain() - h" V, @( e4 X( S) m/ y4 S
{
% r; T4 y4 U- Bint i,k,m,n,num[nmax],*p; 9 i" w2 f9 F% e' G3 Y2 k' s
printf("please input the total of numbers:");
1 i4 t9 D, u  [$ y0 A1 G( g# Escanf("%d",&n); 7 X0 d; M: W- n* ^. Q# p
p=num;
& j1 c" d% p- N- i! U7 Hfor(i=0;i *(p+i)=i+1;
9 J4 S- L) A% P% x$ o0 J+ Wi=0; ' B4 }( F; c- @
k=0;
. N' y8 S$ `. q5 m( C+ G* Lm=0;
5 J! w; _& t( _' M# q5 s, ]  d3 nwhile(m {
$ w# t# {# W' A2 U1 Xif(*(p+i)!=0) k++;
& K# @+ Q8 m" y  G9 i' @if(k==3) - t3 ?  T9 k* V
{ *(p+i)=0; 7 L1 }4 O% C4 i' ]- D7 z' I
k=0; * c& X: J  b+ U# L& u: |8 p
m++; 2 [. |2 C8 M2 P9 b; @$ F+ Z
}
5 ~! O9 r2 v3 ~i++;
6 y' o  c/ P" r# x1 Fif(i==n) i=0; % q, J. L! W1 w2 v+ ?. M$ k- ^
} & K2 t8 p  I5 k; ^9 k$ _' A' k
while(*p==0) p++;
5 m- N, ^  l' q3 i3 Hprintf("%d is left\n",*p);
5 m# C* ~; R- c( e. z}
- @0 O6 p8 Z$ O! s& q/ Z5 K============================================================== 6 a( `" T: d0 o& g6 G
【程序70
" F/ q, g; v! z6 T) q题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。 2 m; G! |0 ^6 q# {, g
1.程序分析: ( `, e2 c. `) Y
2.程序源代码:
- v" w+ A1 g/ W" C8 x* n. Wmain() 3 _" V4 @/ ^, S. P/ E
{
' n  ^$ _$ f3 T8 |2 ]int len; - x! N0 r3 F6 {" ?- U/ n8 F
char *str[20]; . b7 U8 p0 R% L; J* Q0 _5 ]; _
printf("please input a string:\n");
5 z8 q3 s) r8 B4 F2 l* I* S% Oscanf("%s",str);
1 N- T9 e. R, ], Olen=length(str);
- Y* ?$ H' a% p( i# k! h4 @7 Sprintf("the string has %d characters.",len); 2 w, Q& y, i; l5 V" m, ~9 g
} % t7 ]8 o  u! N; p/ w7 @4 t0 n* X
length(p)   {* k3 X+ O, U  Q  R( X
char *p; 7 z9 Q8 W% u8 n" X# }. J
{ ' U: [6 K( A, U# |$ ^
int n;
2 ?  L0 m! b: Y/ B3 {2 Mn=0;
5 u# b. b, [4 u* N; `4 Iwhile(*p!='\0') ( D0 g8 ]% K( r0 _' k; r
{ ! }! @, c- i3 O5 {5 F2 L6 \
n++; ' ^4 A' V7 W0 u% |9 |% [" y
p++;
% c, M6 Q# J' L7 j- ?4 W: F} ; C& Q0 Z) J7 w7 T9 j! o# N. b! B
return n;
9 Z! v& o' ^% W8 l' S) ?4 y* |3 K} $ q+ c; }: K3 J3 R1 }! I; C, g
【程序71% E# s1 H! b8 t6 c1 v
题目:编写input()output()函数输入,输出5个学生的数据记录。 6 ~: [6 R6 g- H& c1 F4 u! N& x
1.程序分析:
% y1 B/ D% @  X! H3 M' Y: T& d2.程序源代码: ! q2 t7 h7 ]$ D7 H1 N4 k' ^6 r, D
#define N 5
9 n  H  e! W  b3 @: {! y" G3 jstruct student
) w/ f9 ^" e# a# z{ char num[6]; , n- w! B8 A; R" W- l- {
char name[8]; 0 H  x* ]7 D/ i3 ]  w% o  U9 f6 Q7 n
int score[4]; 8 M! p3 W( }! x# V9 f* {# g& H
} stu[N]; 4 T; ]  ~+ K; G
input(stu) # q) J* l6 f4 S) ]
struct student stu[];
' \9 c" l6 r7 i+ S{ int i,j;
5 B- w, U& c% @2 v$ W1 Kfor(i=0;i { printf("\n please input %d of %d\n",i+1,N);
* [) X* V1 y$ H  V' G# l9 [, Pprintf("num: ");
% V3 j# ~% j# Qscanf("%s",stu.num);
6 p4 R( c0 f2 o) b# Kprintf("name: ");
* N2 M; Z7 F$ ^+ vscanf("%s",stu.name); - p1 {& r7 y& b: \
for(j=0;j<3;j++) % x( E! p( X7 x5 L' b/ F
{ printf("score %d.",j+1); 8 Q0 r; t& a$ g
scanf("%d",&stu.score[j]); % a0 d/ D# b9 T0 }6 [  g
}
# C" @) g7 w+ B7 h( Iprintf("\n");
" B6 {6 L! b. _$ u% [7 J# d}
  S; p, t8 F& O0 r! [. ^" u  n1 x- |} 5 k- z+ \  a/ L. x
print(stu)
9 g$ A& ?5 ]* H% d' t' Y* bstruct student stu[];
+ ^0 Z) S) h  D{ int i,j; " Z0 d  m; M- X* _( i8 }7 E+ @
printf("\nNo. Name Sco1 Sco2 Sco3\n"); % H5 Q  k* Z0 E$ w- B- H
for(i=0;i{ printf("%-6s%-10s",stu.num,stu.name); 2 \( X1 s3 x( X* Z8 P$ W
for(j=0;j<3;j++) ' X' Z: a; j! t- D
printf("%-8d",stu.score[j]); & W, B# j* e# @" K  P
printf("\n");
+ [+ Y7 r+ J. ]7 M7 s5 l0 D9 x}
% d: J/ m9 V! C0 M$ Q; }+ w}
- b! _, ?5 N, q$ g4 Vmain() ' P: f4 r; {5 I; d0 i, T
{ ; M3 ]( f, I0 o* @
input();
7 d/ \* H3 k  zprint();
% [/ ~6 i1 g5 B5 o; z' A1 {, E}
7 X2 {7 s$ r! L& s: Z- m9 Z( I==============================================================
6 i* k3 O% m. P& A/ j【程序72
0 `) g8 D6 V5 X3 c! Q% u; T5 g题目:创建一个链表。 6 |! ?: m* N' _
1.程序分析: * q2 [/ R; e! c* P0 \
2.程序源代码:
- \$ ?0 d! {( Y/ _9 i% ?/*creat a list*/ 9 T, I. l! e9 N0 t& }& y
#include "stdlib.h"
. Q( j0 A+ V( W/ r#include "stdio.h" ; k' X2 L; a) u: a
struct list ! _+ L4 b! v9 X4 g( Q7 O  ^& F
{ int data;
' D- k0 s2 n$ B. K3 ?struct list *next; 9 v4 @6 }2 i9 x
}; / `( `1 ?% ]5 r: W. \0 h3 s
typedef struct list node;
/ D7 I- D& ^% x+ J& gtypedef node *link; ' \' s4 R% S& h" \
void main() + a: U4 B% E9 s( g& d5 \0 C1 O& ?: X5 r
{ link ptr,head;
* k7 B, [' |% Wint num,i; % ^$ ~( J4 G7 Q
ptr=(link)malloc(sizeof(node)); 4 m5 X+ c5 L0 ^2 ]7 j1 A6 G2 ^
ptr=head; - p: K; y# g- P
printf("please input 5 numbers==>\n"); - Y8 O5 B8 y2 {4 X" m
for(i=0;i<=4;i++)
+ h* C3 i& k7 s' Z: T$ P3 o{ 3 m1 J' D5 r: H2 l. t
scanf("%d",&num); 5 e9 ~  I2 T* P7 U) D! v
ptr->data=num; * j- a- b; w$ D
ptr->next=(link)malloc(sizeof(node));
0 Q' P, I) O1 Z$ U3 Pif(i==4) ptr->next=NULL;
9 z9 {, {: o; d" Z$ ielse ptr=ptr->next;
+ v1 x- Q6 Q2 F# `} 8 Y1 S( C6 M, X  b' T! o
ptr=head; 1 I1 F7 }7 p! j( x3 T
while(ptr!=NULL)
: ^: S9 m3 [- ~2 Z8 O{ printf("The value is ==>%d\n",ptr->data);
- Y$ R7 X: y3 l7 Y( j* Jptr=ptr->next; 5 n0 T/ E. h6 Z
} + a* J' c- n1 v: ?, }" H6 V+ G
} ' I8 \) k! v% a; ?* T6 }2 p3 L: S
==============================================================
% A5 o4 f( K/ t( Q【程序73
$ Q. c& b: x; S8 `9 r7 h& I题目:反向输出一个链表。 5 Q4 O# ~# ?% d. c. V( U' T
1.程序分析: " k8 M( j, r6 V& d6 W
2.程序源代码:
) X: ?7 t5 S6 O. D0 r/*reverse output a list*/ 8 _) T  K2 `) Y8 N
#include "stdlib.h" 7 n! r/ F, L9 C  K" c" V
#include "stdio.h"
/ z3 ]0 R. s5 y& i6 C. _- wstruct list . Q9 d# d5 E' D7 d/ v
{ int data;
: v# r% @) a& r$ Q5 e: ?8 S  x- P# u, B3 Xstruct list *next;
; J+ E1 G' _5 S/ ?" F, C}; 1 K3 w9 d" x. t! A: z! W
typedef struct list node; / F  g0 ~7 I- U( l0 `
typedef node *link; ( C/ F; v! _8 P; z" t
void main() * w/ Q  _( N2 L- f0 ]! {
{ link ptr,head,tail; . r8 |8 l+ e# }& L# _
int num,i;
; V% t% k: x2 Wtail=(link)malloc(sizeof(node));
0 W2 Y# y- x' X  N+ B5 p2 h, Btail->next=NULL;
$ f- T: z0 R$ Nptr=tail;
0 F+ `& z# C' ^; `5 t) nprintf("\nplease input 5 data==>\n"); 3 V& Y: E" }5 n- X
for(i=0;i<=4;i++)
0 t. ]' P. z/ q. w2 R' F{ + I9 z/ N" d8 @
scanf("%d",&num); ; R+ d( `& L4 U! L
ptr->data=num; 9 n$ Y' k9 l$ K1 t' R/ W! w, F
head=(link)malloc(sizeof(node));
, F. }3 }9 i. W6 X$ u( }+ Rhead->next=ptr; & L& @4 |& `( s; P7 {( ?
ptr=head; & j! @. Z$ w  |. c: U% r
}   b: t$ @. i% M
ptr=ptr->next;
8 D+ A( l! g, K& K1 b, y, ~while(ptr!=NULL) 1 D! x, [8 S: i) D2 [
{ printf("The value is ==>%d\n",ptr->data);
. c9 }4 v/ U/ Xptr=ptr->next; ' R3 n: E2 j* U# C* v
}}
# {  D7 W4 I$ p' V; i0 ]. u============================================================== : R3 g+ Z& J( D/ c; |7 N( k
【程序74" t7 ?5 ^" P/ X; I5 W
题目:连接两个链表。 # B( B+ m0 J/ Z8 ]" q" C& z0 B
1.程序分析: 9 O3 C' o% h% y0 m2 ^
2.程序源代码:
2 c) ?# B  ~3 t) E+ P& g9 U#include "stdlib.h" " m, p# h: \0 ]1 P
#include "stdio.h"
' J# ^! w+ M: @/ U% z: a( A! tstruct list   E( n0 n& u- S
{ int data; " T3 Y' V2 T$ ^! @8 w' }+ n
struct list *next;
; R2 m( E2 a% O0 S8 _}; / |; c+ `$ S2 y6 N% T
typedef struct list node;
1 b! d/ k& o/ I) Z& vtypedef node *link;
* z2 J. [2 Q( F) H! E2 dlink delete_node(link pointer,link tmp)
! J0 t+ Z- ^' C) D6 O{if (tmp==NULL) /*delete first node*/ 6 K, N4 @$ ^) m. K% Y; L
return pointer->next;
; `* g5 j- g" o# y* delse 8 I  P& T( R' n- @9 C
{ if(tmp->next->next==NULL)/*delete last node*/
5 u- C) y( ~/ Z& j) W; ctmp->next=NULL;
0 l+ ]* l# A. Q$ felse /*delete the other node*/ + f4 |* i; i7 m  @7 C6 l9 m/ D& p
tmp->next=tmp->next->next;
" Y2 Y6 S$ _. k2 `7 _return pointer; 4 C2 l# n! |. X4 C2 y: \
} ) P5 L! ?; j: p$ P; F+ [
}
2 q6 U9 T' }6 \void selection_sort(link pointer,int num) & `8 z0 x0 x* D8 T; U
{ link tmp,btmp; ( O/ x; B$ G  A2 q  P( Q4 |: @- M
int i,min; ! ~& M2 D9 p( L6 Z2 \
for(i=0;i {
+ |6 Y: e8 o/ S  r" }& |tmp=pointer; & K$ |0 ?; }# R6 g
min=tmp->data;
* L3 r1 U+ m% q* J) Pbtmp=NULL;
+ d/ m/ n0 G, x/ p% z+ f9 ywhile(tmp->next) / C# L' R+ {% K$ o9 g
{ if(min>tmp->next->data)
4 ], s- ^  v6 b5 D) K9 w' m{min=tmp->next->data;
( ]6 o) Y9 l) A3 R/ h0 Mbtmp=tmp; * u( X2 _* h! m- I& a- ?
}   ~8 v# W/ ?% i* K
tmp=tmp->next; 2 x7 B' g+ m% C9 _5 q: z
}
1 F% p, S$ K# t9 f" ]1 f7 jprintf("\40: %d\n",min);
9 v# }5 e/ u, r3 q( w: Apointer=delete_node(pointer,btmp); " `; |8 ?( w( E
} ; p6 @2 l$ p- _9 i. U! O  O
} : Y; N" f. `$ Q2 w
link create_list(int array[],int num) 3 v4 N6 N( x/ P. `, ]- g) e
{ link tmp1,tmp2,pointer; 1 W6 f% `5 |* ?; D$ ~
int i; 9 L- h) u  c" j+ ^' _7 i$ G9 e9 y
pointer=(link)malloc(sizeof(node)); 7 E" }/ s; {  @, G  n% c$ [8 h. O
pointer->data=array[0];
+ d! X/ y: ]1 m" P6 W2 z1 N" U/ atmp1=pointer;   g# E4 c  `; g% C' u
for(i=1;i{ tmp2=(link)malloc(sizeof(node)); 9 C$ i2 Z, h6 F2 e2 m* {; u" C' b
tmp2->next=NULL;
' t3 j6 Z* B' P+ E0 Q; M3 |* Atmp2->data=array; ( O1 I' ?. m' Q, u( N$ @6 z
tmp1->next=tmp2;
/ i6 y( b5 d* Ttmp1=tmp1->next; ' R1 ~# w+ G. C! F% c2 f
} 8 j5 W" X* K' ]
return pointer; 0 T% T4 Y6 a+ f. ~& Y6 w
}
9 ]- `- P: v2 B% |' C( slink concatenate(link pointer1,link pointer2)
" t$ ~+ U' \! s9 ?; V' J{ link tmp;
3 z8 Q4 c  v# F5 A' @. xtmp=pointer1;
6 W6 E- b8 F; L3 c9 B% {* {( ~while(tmp->next)
, N3 v1 g2 b3 C( X# }* b$ Etmp=tmp->next; ( d  B4 p1 F, t6 F: ^& ~; n/ a
tmp->next=pointer2;
  P0 B8 s4 w( h9 q8 ?# qreturn pointer1; 8 y6 C' d# v# P6 B7 {( i6 k
}
2 K. y! I# j1 o3 F" |, [$ i2 Cvoid main(void)
5 |4 l9 [& {  Z+ a5 x0 J7 \{ int arr1[]={3,12,8,9,11};
! C  L: R2 t5 C. S- `: o2 hlink ptr;
% x5 e2 \1 h2 O/ o; Iptr=create_list(arr1,5); # Y$ P8 j- J+ x& L" Q& |, T) F
selection_sort(ptr,5);
# w3 B: F  d! y% \8 w2 [& M}
5 v; F) K* }6 @" K============================================================== & Y) a2 W: Z( L
【程序75( Y5 H- k1 r3 b* \+ x! R2 o9 c( ^
题目:放松一下,算一道简单的题目。
3 X/ @9 A* h* ]0 V: G8 W1.程序分析: % x: U" N8 L$ O
2.程序源代码:
% u7 h- u8 {% F2 U1 imain()
2 ]; z4 w  b2 L, U3 B" ^. o{ 8 D! I# D5 `8 j' f+ P
int i,n;
2 T7 n, Q7 `1 v+ p6 u: }1 B. l' Lfor(i=1;i<5;i++)
) M. g* J, Q- m$ Q/ \" X, ]! t0 l{ n=0; $ T# K6 M' }0 a) `6 }: K
if(i!=1) 6 g* Q- s" e6 Z
n=n+1; % J9 I1 W' v! V0 W! p9 X
if(i==3)
9 }  z0 W  B# u2 b( J' ]; r' D/ rn=n+1;
! H$ m8 J! Z) j( m! E! K! Oif(i==4)
8 [, i: q; h6 w! |4 u! an=n+1;
) P( T1 u0 f  ?/ q2 k: kif(i!=4) 4 G. A$ E- N4 ?+ G$ F
n=n+1; % y, U1 D1 ^$ ~8 S% \3 D
if(n==3)
; d, A- G# q  k/ ~printf("zhu hao shi de shi:%c",64+i);
8 j. ?/ g. i5 A5 D$ e5 j}
6 w+ r. o8 E# l; C% M2 b} - b5 O3 Y/ W2 H% c# b, O
==============================================================
! ]( T* o" y5 M9 b0 x2 z/ x【程序76+ a7 T0 S+ ^$ `* R
题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数 * ~# j" H( S+ ~. H) [+ f
1/1+1/3+...+1/n(利用指针函数)
- n% G" \% e) Y' X; n, q1.程序分析: " H7 j" M; a, U' U( y
2.程序源代码:
/ ?" h1 X" Z% P* i1 u8 [main() + L- g+ U2 M" q6 G- B
#include "stdio.h"   N# H# Z+ Q8 ?+ p( w
main()
! f0 I$ d/ s, W! p* o9 H{
' ?# t( P* G5 V* F$ ufloat peven(),podd(),dcall();
3 o5 i( i* M( C7 u% d# M8 |float sum; & J& R% x, B; C4 G& p3 G
int n;
* m5 e" s. p) ]3 m- k0 f7 wwhile (1) . y2 C5 H" S/ [1 m5 e
{ ' w  q" j% E& r+ ?# Z
scanf("%d",&n); 8 \7 O5 i2 ?9 P
if(n>1)
# c# `; K6 g* U! M4 o2 s5 f. Xbreak; " B5 [9 m% s  s
}
( ^5 c5 A# a2 {; M0 Y, r6 p4 y) kif(n%2==0) : ?3 ^3 T5 K, D' _
{
5 y% N6 H9 _8 g' f+ e$ T! B! ?) Xprintf("Even=");
" r- E4 a- n% @4 ?# Q. rsum=dcall(peven,n);
0 |# D3 P8 P* p7 M! X; z}
1 y" a  M  B) j2 g( i$ Belse
! F' G; f) j% ~& c7 J& z{
( X0 y8 f. d; {+ ^* @printf("Odd=");
, _2 A! T. B# ^% ]% lsum=dcall(podd,n); $ u  K  Q% A  A% ]
}
4 l, E6 `1 k: b/ c& `1 G9 M3 Xprintf("%f",sum); 1 ]& {. |6 Y$ J9 _) u6 x
} 7 z3 I% [, X! n3 O( P6 p/ d4 i
float peven(int n) ( W3 N( ]3 ]) t: P/ e9 c
{ 8 h7 t8 x# m  B0 F! _# x
float s; 0 g5 }1 _- i' x: d) B1 i
int i;
7 e# l  m3 i8 t$ p  \5 E. ?8 js=1; 1 ]' ?' Q7 b; }/ s! E$ W, Y4 r
for(i=2;i<=n;i+=2) * t$ i- m' b/ r1 W) j4 E
s+=1/(float)i; " v0 ~" p. k* w/ x
return(s); $ d: Q- l" z' K8 |. F0 L& h8 ~2 k
} 2 D: l+ f" E( e3 a
float podd(n)
$ o, h* e5 _- jint n; 8 f6 L: ?/ |) e2 @( a8 r* b
{
1 }. O& \3 L/ Qfloat s;
5 A3 }- Y  a, c" c* T: u% q9 {# ?int i; 1 m& G# T# Y2 `3 p/ W4 P( B/ \
s=0; % F! f/ b  l/ m. w
for(i=1;i<=n;i+=2)
- t$ F7 O4 _1 ps+=1/(float)i; 7 l5 H$ R5 w! r" d
return(s);
5 |: k  y7 X" e} , P8 }' e  T5 T2 |/ {4 P& ?
float dcall(fp,n)
9 a$ w7 {& `( o) \7 [9 pfloat (*fp)(); # i4 v7 M: [( Z$ t
int n; % Q' p8 O+ e6 B- D
{ 6 O& d  B7 N9 S! G8 X
float s;
' X% H" t$ Q# ^( {. W/ n: a5 us=(*fp)(n);
. u+ q) b. P& L; Y* t9 ?$ m% jreturn(s);
; e$ c3 |2 {& U2 }0 x. f. i} / s+ `; M& x/ t3 _8 _( G# d$ l, \- ?3 D
==============================================================
4 o& _* L6 r: n6 ^5 Q3 j: y
& n$ y+ C) Z& W" f" c5 H
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2024-11-8 21:12 , Processed in 0.070300 second(s), 33 queries , Gzip On.

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

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

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