找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

C语言经典算法67-76

[复制链接]

114

主题

136

帖子

1000

积分

四级会员(40)

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

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

EDA365欢迎您!

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

x
【程序67
+ M" F4 T+ r. G4 ~$ F' O% l/ z题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
! z5 M2 X/ H2 b) Y9 e3 M$ J7 l1.程序分析:谭浩强的书中答案有问题。
- Y9 N' P0 c4 j0 L" t- r, ?2.程序源代码:
2 J, n3 B( ~+ ^% qmain() ( u+ U$ F9 r$ j+ m" _
{
, V" o% `$ r: }0 ~int number[10];
9 l3 L! x: \, E* `' ~1 ~input(number); ' t# F) u4 V% l2 N4 p& s* b8 h
max_min(number);
) A% m8 z, q9 ^: ^' P! V0 g8 s5 woutput(number);
( B# H# o% b8 i  B5 F7 z}
: h- T" [* G1 J# M( m0 g5 R* ginput(number) - c5 \( k: j7 r& W. ^" t
int number[10]; + y6 ?1 R# G7 T7 r. q
{int i;
3 C& H2 Q4 d  o; u; Q" afor(i=0;i<9;i++) . E) u. I' h2 S% E+ @1 n* g) A+ v
scanf("%d,",&number);
# F" R/ R6 v6 E  K) \4 Escanf("%d",&number[9]); 3 O5 |* |( a5 F: f, J2 ]) x
} 9 W0 P8 c% F4 g
max_min(array)
7 J. L+ m# q: C  F# {7 Y1 Xint array[10]; ! K& b% [% ~* m
{int *max,*min,k,l; 4 w6 v0 I% X4 z" ~) s" [5 }0 G
int *p,*arr_end; 4 ?7 R7 ?5 j! _; d0 r+ ^* F. {! n
arr_end=array+10;
0 _" Q9 m+ }  g' A- m& U* Emax=min=array; & g9 @; O. N4 O7 `" u  e
for(p=array+1;p if(*p>*max) max=p; ! B9 O% l6 W1 n; @
else if(*p<*min) min=p;
; w  E& p7 K" F; ~. V" V2 Hk=*max;
3 J! |, u3 S2 s; P: c2 p' @* u3 bl=*min;
% a/ N6 S) G( j4 f- K0 T5 B. \7 z; b*p=array[0];array[0]=l;l=*p;
5 l0 D/ L5 _2 G$ y0 ~*p=array[9];array[9]=k;k=*p;
* ?' |3 b. ^% s/ n; j; T$ }1 xreturn; " |6 S( M2 p2 G- \* Y
}
5 |3 T8 T5 q" |6 M1 g- Zoutput(array) , ]; \+ j) i$ j% @) W- ]& G5 \
int array[10]; ) X6 C; g: N0 }; V3 h
{ int *p; 0 A' @! l6 W0 x& b- Z& C& G
for(p=array;p printf("%d,",*p);
8 q. H) g, G# [4 O, T, zprintf("%d\n",array[9]);
- v- t$ R* ~1 w; P8 P; B. U5 Y}
3 Y, s3 E1 r, r/ E9 P============================================================== * R- [! a3 w, t
【程序68
& d% F- X- ]5 u+ V+ C题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
8 X1 _6 R5 T8 s1.程序分析:
$ v9 x: {8 C) p0 W  P2.程序源代码:
" l) E& M2 A3 B% Amain()
( G; s8 |" j4 N9 C& {! Z{ 8 k" x# v  R: F' i) X
int number[20],n,m,i;
" Y1 m& O3 C7 }( p0 b9 U+ _- W' ^printf("the total numbers is:");
7 e/ l7 q6 l: @- @8 z, D6 [scanf("%d",&n);
5 |6 |# t3 [4 i8 T/ i" t, E8 ?0 M! J2 V; Bprintf("back m:"); " C! I; I, A) J4 X% j: H
scanf("%d",&m); $ g$ u; A) y) Q
for(i=0;i scanf("%d,",&number);
( m: h) Q% M7 w4 Y/ b1 G% c- J+ }# U# Oscanf("%d",&number[n-1]);
# i. T" P( z' e& ?) Lmove(number,n,m);
: e* P* K  t/ U. z9 i/ i: \/ sfor(i=0;i printf("%d,",number); 1 E0 k% ]( b9 ]: G" Q% r) c
printf("%d",number[n-1]);
1 k6 s7 O7 d* g' U}
' @8 `1 g5 Q/ X" v/ ~0 }" ~move(array,n,m) & Z5 E9 O3 g* d" o3 u# d4 h
int n,m,array[20]; 5 S" H, p% V5 ]( P& A. k. N  d
{
: G, X# d+ |# q8 Kint *p,array_end; ; C# Z; u- N2 V6 i5 v4 |- t
array_end=*(array+n-1);
' X0 i. n( c/ y9 Afor(p=array+n-1;p>array;p--)
7 H4 u/ e8 |) |+ N$ Y* y; u  s8 a*p=*(p-1); 4 h3 V# v& `5 _9 U& G; \
*array=array_end; ( r3 B4 \. J3 f; y6 k/ i9 f
m--; ) }: {) T5 ?9 ?8 S( R" H
if(m>0) move(array,n,m);
; d; ]- a5 \  V% a( H} $ y: Q" D* e/ p" @; ]
============================================================== 6 J7 ~$ V" v# T" ~1 F: M$ _2 f
【程序69
8 K% O5 }( c) ~题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从13报数),凡报到3的人退出 ! y3 h3 ^% d4 f; e9 [0 T' v
圈子,问最后留下的是原来第几号的那位。信盈达嵌入式企鹅要妖气呜呜吧久零就要 5 J* N8 ~3 t. B$ m' m4 x
1. 程序分析: 2 Y- w- h( y5 c4 q  b+ t* b( T
2.程序源代码: & W4 J3 z: R2 X
#define nmax 50 # W" A! d  m2 c0 r- H8 M8 k. |
main()
8 v2 F0 K6 `# v3 {7 W) c{
& d+ M) b3 W7 V- J' {int i,k,m,n,num[nmax],*p;
# O3 w& B% F; K' nprintf("please input the total of numbers:"); / j% q* G6 @8 D) q' T6 y' ~
scanf("%d",&n); & j2 M2 i. K# q+ l' i# u7 N
p=num; # y* T1 j7 t8 }( }
for(i=0;i *(p+i)=i+1; 4 ?7 m% Q" `6 d$ v0 }' p
i=0;
& u+ q1 w7 f$ ^  Z1 C4 |$ qk=0;
5 {* w) Z# O& R) C6 o4 S$ Pm=0; 1 l; U* y- D0 F/ H9 `
while(m { ! w0 O" c+ c/ r& i. @6 d
if(*(p+i)!=0) k++;
& b+ N" c+ p+ S6 ?* h" aif(k==3) / f4 `2 C; {( K
{ *(p+i)=0;
# @+ ]$ D5 \6 y, {& |0 Tk=0; 5 m/ K) Z$ ?. w( f8 U
m++;
) s" @* w" D0 u+ ^! \" {} 6 L& M$ X7 \- w) ?5 r$ g1 k
i++; ' N% c: m5 U; B
if(i==n) i=0;
# V1 ?2 E9 j2 C- [5 z/ b* u} 5 P3 C# d' j& l7 G
while(*p==0) p++; ! Y% C1 @2 |$ t# V4 a  S
printf("%d is left\n",*p); / M9 i, u( l! M5 l! d4 V  F! W
} : @4 f, x9 P2 [" h
==============================================================
( G2 E3 m8 x$ J; e) u【程序70
1 J8 j; B5 p$ }5 b$ o/ W! @题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
, j  o) l- |7 ~" Q! K1.程序分析:
/ r; z0 G: Z& R6 n7 v2.程序源代码:
5 |; I! {1 P+ Q9 emain() # e0 y# N" u7 V# g: L3 p% [( e- T* K
{ 8 E# d& ?6 q$ O2 @; z
int len;
* s3 p8 y5 j5 ^1 Zchar *str[20]; 0 M4 U* o& V- o) E  i
printf("please input a string:\n"); # ^- k* I# L* F$ ~) [
scanf("%s",str);
# P: v  c1 w5 O. P& ylen=length(str);
: O" @  B& ^& q, Hprintf("the string has %d characters.",len);
; j2 `5 u, V3 v* d: z  b}
: ?1 c4 R5 w* b8 slength(p) ! U0 U0 E) X  J3 N- m8 `% D
char *p;
$ M2 X& X$ n* V$ t5 j: H* r{ - t+ E$ `% i8 X
int n;
, V, _! o& y( X( jn=0; ) X( M" j+ G4 S4 L  q8 [
while(*p!='\0') 4 C3 ~4 A+ ]1 p3 `
{
/ A) q3 ?2 ?* y. @  xn++; 4 M* T. q; Y: G4 I, P
p++;
. j& K; o9 C" U; e7 V& Y} 1 K' x8 t" k- w& }) \5 s% Z2 L
return n; + j9 b& W& M6 W3 \
} 8 `1 b% o: q+ C; [" q  I& Z9 z6 ~
【程序71
! D+ O& o. F6 x" V6 N题目:编写input()output()函数输入,输出5个学生的数据记录。
, s/ H. h4 q; s1 v8 V7 W/ q1.程序分析:
8 Q+ B# z: A. ]) S8 {) R0 P8 X8 u2.程序源代码: 5 {, a/ [* W" w0 q. V" p
#define N 5 ; W) O. f+ F' u& M. G
struct student
( Z" u& u2 O6 K) o{ char num[6]; / E% K- y3 z' A6 a& ?
char name[8]; " B8 z! k+ f& B
int score[4]; , L9 J, q" L+ W! \
} stu[N];
3 G& a% G. J2 u; \$ rinput(stu)
/ ^) W: z3 w; x' C+ Kstruct student stu[];
7 M: t9 N% \6 h( h{ int i,j; 2 Y& t' ]' T  Z/ b" C
for(i=0;i { printf("\n please input %d of %d\n",i+1,N); 2 O8 b; q& F& @2 g% g$ J& _# ^) u
printf("num: "); : \) ^- @8 t! T* |2 U
scanf("%s",stu.num);
/ l, p" M9 m  z9 _0 Rprintf("name: "); 0 k# ?- a) z! n! A/ ~" n) u7 x- t
scanf("%s",stu.name); % B, G  ?$ s9 |, L1 C
for(j=0;j<3;j++) # r3 W- A. J+ h
{ printf("score %d.",j+1);
4 {8 ?0 x( r+ _, I9 l2 ~$ R& ?scanf("%d",&stu.score[j]); & ]2 z: m6 k7 e5 v  e0 i
} & G5 i( v, V4 G, v
printf("\n");
' \; s+ X6 e; N7 ~3 i7 \} # v" [, G  K* ~9 O8 j4 ^
}
! g+ x" v' F; ~) j; [6 Z# ~print(stu)
5 p, j6 b$ i0 b) Ustruct student stu[];
" j, i6 e4 Z* s+ o{ int i,j;
- f( n* Q7 A4 O+ l+ Hprintf("\nNo. Name Sco1 Sco2 Sco3\n"); 4 n# C  J* a/ n
for(i=0;i{ printf("%-6s%-10s",stu.num,stu.name); " w  o/ |: Q5 i9 q5 R1 F
for(j=0;j<3;j++) " B" O4 g% o4 q4 W. C
printf("%-8d",stu.score[j]); 6 Y$ n4 r1 D* H8 e
printf("\n");
; C4 ^! V: x# s% v}
% s8 p7 {# M5 `. `}
; d& K7 N, `1 Y/ }, y! Umain() + f* J0 t1 [$ W+ |. i
{ & h" E/ N/ s: l! s1 `- T( v8 j
input(); 2 X$ r5 X' b# }5 y. `* n
print();
/ Y5 Q9 F5 E* a} % C- r$ f" C  m$ r& ^, S
============================================================== * H/ a: @2 _& F
【程序72
  O" S3 Y" b( _& w1 Y+ I3 y8 \题目:创建一个链表。 6 H. Q$ |& V, X: v
1.程序分析:
. u  E4 O; A7 t2.程序源代码:
9 x+ h# A+ @+ S7 s! i/*creat a list*/
/ `8 K' n' n) I5 P5 ?3 ?#include "stdlib.h" / X' i  T) v' [! z+ B
#include "stdio.h"
& j$ O" T% z% X# c' C6 nstruct list
9 y; w9 x$ t# y# ^7 M! Z, t% a{ int data;
" w6 d1 B" ?# {% s+ X! G* bstruct list *next;
- q; }" K6 N9 Q. p& u  C};
" U0 [0 S$ m2 @1 ]' Xtypedef struct list node; 4 {" Q- _, Z7 p( X1 \' T% k' C
typedef node *link; 4 t+ N$ U$ L' @' C4 e9 Z4 N
void main() 1 H3 n2 O. Y  S2 b& z
{ link ptr,head;
4 s% ^- Q: L; K3 Z! s# f6 uint num,i;
4 e4 A7 ~3 O; F: r6 B. |! Pptr=(link)malloc(sizeof(node));
- r! L* Y) j1 W6 m4 g2 J$ Uptr=head; 0 f3 i4 L2 L- U! z$ ~4 M+ O
printf("please input 5 numbers==>\n"); 3 ^( `- t9 r2 I/ P
for(i=0;i<=4;i++) # ^5 x2 a$ G& x+ v, @
{
0 E% l  y, a0 y8 f' P" }scanf("%d",&num);
2 ~0 `. N: m6 a) B3 ~4 xptr->data=num;
. d$ I+ x8 n. m2 j/ Lptr->next=(link)malloc(sizeof(node));
. B* Q. k2 B6 N: v9 Xif(i==4) ptr->next=NULL;
: [  B9 _! D- e9 melse ptr=ptr->next;
/ C" }+ c$ _- B3 @! m% a. N} & f! V! N4 o. g( t% x
ptr=head; # v9 C. ?3 u" U
while(ptr!=NULL)
4 Z' |  @+ b3 E1 F% Y" ]+ u* n- o{ printf("The value is ==>%d\n",ptr->data);
/ |( K; e8 p, j  Z" I' [ptr=ptr->next; + A9 c' H0 w( u
} : K6 A8 t" X5 S& P
}
7 ^  U' }# m8 G9 u6 Z$ U==============================================================
* o7 V+ K+ Y" E; P2 x【程序73
9 V6 q! \6 V' U, ?3 L& W' w  y题目:反向输出一个链表。
" z* i0 C% j; P9 q$ p$ `' q, g1.程序分析:
: Z9 C* Z+ M/ Y$ w% ]' _0 Q2.程序源代码:
  G+ ~- \  s5 q$ N/*reverse output a list*/
! E2 F# Z- U$ t; t' J* J#include "stdlib.h"
4 C" [; s0 q" f8 T) P1 r2 w: Z- j3 l#include "stdio.h"
. ?5 q6 S# i  }: _; d. }/ b0 Jstruct list : e/ I$ A5 p, j( B' K5 a+ w- ^
{ int data; 5 d! U" Y; L7 h
struct list *next;
/ J  ~# _' v6 J: H- o( J) Y}; 1 V, c0 b3 Z3 q1 B3 M8 X
typedef struct list node;
4 T( Y( X1 N+ z' C5 Gtypedef node *link; * J( @* a8 h% L6 b/ f& S: ?
void main() ) x$ g' J& Q) c7 k3 o/ N+ z2 N
{ link ptr,head,tail; 1 T% y$ Y. T  @+ t
int num,i; ! c4 J. S# J# T: H$ X6 x4 ~
tail=(link)malloc(sizeof(node));
7 J1 S6 z, Y' i5 r6 m' Rtail->next=NULL;
9 q2 I9 L. T  k6 F( X6 `ptr=tail;
) V; A6 g( u4 @( ]( z9 R# M+ Cprintf("\nplease input 5 data==>\n"); 7 ^" A. s9 B1 x9 Y$ A
for(i=0;i<=4;i++) & u- f* g3 v6 Q  t; u: C
{ $ ~4 [0 k$ Z. A& b. n
scanf("%d",&num);
* t* @# L, r; M0 {( |/ d; p# nptr->data=num; 5 K- {$ P" T& S' N5 @2 T% N
head=(link)malloc(sizeof(node)); 8 d( \& g( }# Z. Z4 [
head->next=ptr; , @* s4 V& u4 m* A+ K: |
ptr=head;
  _+ q' R& d; |6 i$ W4 O9 u+ r} % z( c5 W. s+ D" P) H
ptr=ptr->next; " a$ U1 w  s1 S2 J
while(ptr!=NULL) / g  ]5 c' H/ I; L8 g- V
{ printf("The value is ==>%d\n",ptr->data);
) ?; ?& |  O8 s9 G! zptr=ptr->next;
: L$ K4 p- y" r6 L}} 9 M1 Y! J' {& n) ^! a& O9 }; T
==============================================================
/ ?; y. V: P* _7 [- y" h【程序749 J2 R+ M9 y$ |2 n
题目:连接两个链表。
6 w4 i1 P5 d  D  |, `" K3 m8 H1.程序分析: , h. b9 V! P* O3 }9 i3 c5 c  m
2.程序源代码: 1 s/ i- U& C& S6 ]
#include "stdlib.h" . K6 G4 E" G, j- h! g$ v
#include "stdio.h" + |* G1 E+ P' I* `0 P6 F& O
struct list
& T$ K0 S9 W8 p* p{ int data;
5 t3 p9 l$ C, Kstruct list *next;
: e# ~8 L" X6 i6 L/ ?6 ], h+ B1 C}; ! z, ^+ p- [  a, \
typedef struct list node;
/ ~1 u7 K. Z% _: y+ wtypedef node *link; 0 X5 _7 Y% p# _5 U
link delete_node(link pointer,link tmp) 6 ^& |5 z$ v# i" M5 N* U
{if (tmp==NULL) /*delete first node*/
6 `( V6 _  @* T* Q1 }4 C1 \. X1 b* Y/ k: Ireturn pointer->next; 5 F" n& f# d! h4 [! c4 h
else 2 w' E+ c+ J# p) N
{ if(tmp->next->next==NULL)/*delete last node*/   X9 C' n- b( I
tmp->next=NULL;
* a4 c: b0 n7 t4 D, d0 gelse /*delete the other node*/ % F" f4 W1 [5 D7 Q' B0 ?
tmp->next=tmp->next->next; 1 u2 E- E& K/ p- U5 t7 i
return pointer;
/ A0 h6 W/ X9 P4 h! @5 D} / A0 h/ }( e' C9 L* J& T3 Q
}
9 J( i0 n4 d' L  O! o" _0 Mvoid selection_sort(link pointer,int num)
5 q' h. ^* M6 G; l# d$ d, h2 C, D{ link tmp,btmp; $ s8 g) E4 O7 X3 q
int i,min;
( V$ R5 M  M8 S" Xfor(i=0;i { 5 y0 O0 {8 M/ E: J( ^
tmp=pointer; ; U: N, S# ]9 }+ i' e2 f/ L9 D
min=tmp->data;
8 K) B& p1 U, c# g( f8 V8 j7 Kbtmp=NULL; 8 r& }0 c# `/ O6 y2 b" q/ ^
while(tmp->next) & N+ d* X+ ~  H' D* Z4 Q
{ if(min>tmp->next->data) , Z8 F  S+ T. x9 \; c# k1 Y1 {
{min=tmp->next->data;
8 n  [; |; B( A) y$ y* S/ ybtmp=tmp;
- A+ t  {: z: f& s} ( `& E& Y. n- r1 c
tmp=tmp->next; 6 U$ G0 d' j; u& i1 |
} 6 e$ f8 P+ M3 l% i
printf("\40: %d\n",min);
1 k+ s- m* L& X) K1 ipointer=delete_node(pointer,btmp);
; V1 z6 }7 J' E% V6 P+ o} 4 r5 Y2 |0 i7 j% M7 f
} : s3 ]1 {, H/ u, B
link create_list(int array[],int num) ; {) V9 a0 P+ J6 F2 W
{ link tmp1,tmp2,pointer;
1 i& \! R: Y6 e% E' [+ j" k" Oint i;
8 T" i% i  c1 m' C4 Z0 Spointer=(link)malloc(sizeof(node));
- _2 Z, q" `& gpointer->data=array[0];
: R* b4 r/ L, Z- |6 F, o& ftmp1=pointer;
- v2 w: E$ [' A/ \for(i=1;i{ tmp2=(link)malloc(sizeof(node));
7 ~. ~! `% Z& ]! l& x: ]& u, Etmp2->next=NULL;
$ ]% K3 p9 D3 o- h9 Vtmp2->data=array;
- |0 ]3 @/ w0 L: x3 H" W& x) htmp1->next=tmp2;
, c" Z) j+ Z8 K; {tmp1=tmp1->next;
8 J8 w+ C8 t* e+ E}
3 j; z  I* a' F3 c' o$ Ireturn pointer;
6 N/ B+ \* m3 H9 ?; m} 8 I/ ?$ |2 I; F
link concatenate(link pointer1,link pointer2) 8 {; @( S8 t/ P' J3 e- \
{ link tmp; ' {9 m1 O  n( X7 w6 y- v. d$ C
tmp=pointer1;
  L' a2 d) ^4 R# }while(tmp->next)
! |! A) s( ?$ z8 Q# b& r/ btmp=tmp->next;
8 W% {7 P6 C- }& _) [0 r; {% g- y7 g. G9 Atmp->next=pointer2;
, S1 u+ f* E! w% _* X& ]return pointer1; 1 i( h! G) ^; u& k
}
& o, Z+ E" k  E- Xvoid main(void) / U6 Y9 p8 Z! p* P5 N) e. K
{ int arr1[]={3,12,8,9,11}; & l" i; G' _% F$ \5 m
link ptr;
  w" ^3 p& z% r5 u$ eptr=create_list(arr1,5); " k; L0 X3 f- G7 z4 n$ R0 _9 ~
selection_sort(ptr,5); * |/ j. m4 d+ K) h/ x! E
} 0 p, g( L+ X% e
==============================================================
  D0 ^& h4 c* t【程序75
: X! @% G7 V4 y9 S, j* q$ e题目:放松一下,算一道简单的题目。 8 \& q4 m8 _! _  K4 j
1.程序分析: 4 m2 e! t4 Z  ~0 i9 x
2.程序源代码:
- P( E1 `' ^  X* y3 e3 i& Bmain()
& @# k$ b+ c1 s( P% s{ " R+ Z2 }% M2 h5 v5 J8 x5 R
int i,n; 0 b" d4 I; X0 l9 O, R* ]
for(i=1;i<5;i++) " A: m2 g# K% l$ Q7 t& h
{ n=0;
% M. K( h" U1 V( h" u$ w7 ]' F5 g2 K$ D) X& tif(i!=1)
7 }" _# `2 Z4 l0 r! ?0 q4 r' p8 C' Sn=n+1;   O$ V3 W% A! h, c! b# h+ s
if(i==3)
! m+ L* q  E" r0 U  `n=n+1; ! W2 J/ q7 t1 K% e, O* g& r
if(i==4) 5 x2 c) [+ h3 F% Y/ ?  h
n=n+1; & w- o: F0 |6 A
if(i!=4) % Q0 J3 e& `& ?! R. l# Y4 h# j
n=n+1; ) M# Y3 j# u/ O7 J
if(n==3) # }7 N) Z9 r& k
printf("zhu hao shi de shi:%c",64+i); 8 y/ d! h4 S& k
} ; r5 t* Q; h# s1 |
}
+ I9 j3 i( r% L8 N6 r; d, \============================================================== , g3 X/ [/ m0 \6 ]
【程序76. l9 V; r& l# \2 s+ l
题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数 , Q" K' {3 w! c  J& J7 `$ x
1/1+1/3+...+1/n(利用指针函数) 3 |6 s1 b0 a# l4 f& P3 N4 M" t
1.程序分析:
( M! P* ]: g1 ^. F, C2.程序源代码: 2 L+ t( Y  |! D  V0 B5 R* B
main() ' V1 F  c  e$ S/ ~+ I2 O7 _
#include "stdio.h" . v/ O( [0 T$ _+ ~$ p3 `8 x
main()
7 U/ M) y* G0 S* j( B{
2 m  Q3 p4 w. V6 D# Hfloat peven(),podd(),dcall(); , L. M9 D: Z& X
float sum;
. k% q, o, I, t2 l2 v. v- o) B" Mint n;
/ q' w( R( u% {0 g" Qwhile (1)
- J  g2 `+ {7 i  I& ^{
/ i2 b/ d3 r; C6 P* }( ]+ N, F% V' Escanf("%d",&n); 8 E( K9 B; D' z" C7 r1 [
if(n>1) & `& S1 s% }0 v& A* Q6 a: U/ Y9 ^8 Y
break; % ]. n3 v% O; m  s/ c; s$ @0 [, B
}
) g" u! Z9 {/ N3 c4 x( S0 aif(n%2==0)
  J3 j% Q0 p7 j4 w! ]% f; Q  y% S{ 4 g) ?- {' [) l2 H
printf("Even=");   R" C: k% N' F$ B5 y( w
sum=dcall(peven,n); ! k$ N8 J9 x+ A, y8 ^; k( J. {  v; ^0 D
} # M2 z# f* Y0 J& o9 @
else
7 C0 z" z! {9 |1 q  E. ?! s  z{ 7 _' }8 Q7 O0 `2 b
printf("Odd="); . B3 A2 L; Z( n& h( w( C" t/ f
sum=dcall(podd,n);
1 a+ V% }  l) c7 z; c' {} ' O' S2 e4 N5 r+ e, T, q% n  i
printf("%f",sum);
; }% ?( K" _# x} " z* ~- h( j6 J1 E
float peven(int n) 5 Z: A) ^" a4 C* N8 H9 N1 t
{
7 k/ n" g* A: H! rfloat s;
! E* G  h6 ^# n9 U+ mint i;
' Y+ N' D7 K; t/ ~% X1 C9 F1 Ys=1;
6 x' |0 K! _9 g8 H% Hfor(i=2;i<=n;i+=2)
( u5 U* E! c; z9 h/ @9 ns+=1/(float)i;
: Y. I4 `! z6 c* j7 s4 oreturn(s);
! W3 i+ k' Z- k3 P}
& {3 e; P4 W' M% ^, z+ V$ Rfloat podd(n) % `0 |6 Z. c" @/ |; I, K
int n; & s9 h2 M& b2 L# F# b5 `
{
& @: }' B0 a% tfloat s; - s7 [% _! V+ Y  B! Q% A" Y3 Y  B
int i;
5 j9 ~5 u6 V& Z1 T4 Xs=0; 1 L0 t5 }( k3 [9 e8 ?/ d, M# J6 h
for(i=1;i<=n;i+=2)
! R7 K( y' ]# y+ c2 ^6 As+=1/(float)i; " b* y0 z- z( Q4 T* H  l* S& n/ I
return(s); 2 ~9 N5 i. q2 f" {9 b) P4 ?
}
2 U9 F- u: q$ u* W, n8 ^) T  dfloat dcall(fp,n)
) e% Y" u5 `/ X8 tfloat (*fp)();
- O+ N) f7 {; B3 O  H/ Sint n;
6 @  _5 U7 f% ]1 {3 R* ^: o: y{ ! m& D7 \0 k. D- k; U3 P
float s;
" i6 U$ d. _' q% \. fs=(*fp)(n); 9 y( M1 Y7 E$ I
return(s);
3 t3 H( o( V3 t) z7 [}
4 t) q, P' h: ~' z0 ~============================================================== ! d9 {  S) y3 n* a# p

) W2 E/ j3 u) X3 ~% E2 f, ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2024-11-8 23:21 , Processed in 0.060838 second(s), 32 queries , Gzip On.

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

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

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