找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

C语言经典算法67-76

[复制链接]

114

主题

136

帖子

1000

积分

四级会员(40)

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

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

EDA365欢迎您!

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

x
【程序67
, g" C/ u, v& Q" y题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 7 ^7 K' a5 P2 u( X
1.程序分析:谭浩强的书中答案有问题。 ' O4 f0 N: E. C  w0 y2 P. k
2.程序源代码: 6 a2 r& f+ e  t( i
main()
' r1 M" w% L5 R# Z4 O9 O{ 9 `7 f% o0 k% |
int number[10];
. d7 B( Z( C9 D# vinput(number);
6 Q1 q6 m& a0 G) I& L. X7 vmax_min(number); : e) Y+ D8 H% H7 B! M: o
output(number);
, [0 T( ]/ A& ~8 A8 m: E, e}
% X$ ^  }8 I, c( y2 j6 {" @input(number)
3 L6 }# ]+ E2 T+ U) p+ c6 o, ]int number[10];
( j0 z& i+ q+ v% D9 a6 y{int i;
: U0 \  N# q8 V$ ]' a$ Gfor(i=0;i<9;i++) 4 U8 f2 v' y/ f
scanf("%d,",&number); $ g- \- ^' O7 F/ B$ t8 d
scanf("%d",&number[9]);
7 A( Q: S. O& y" k/ t} * f4 k: ~+ c8 A# @' \3 i( l1 R: H. S4 g
max_min(array) # q8 j+ h( L" M: H3 Q  n) @: `( K( [) K) N
int array[10];
5 @( l; j! d+ q' m0 L2 `{int *max,*min,k,l; / u8 t) W+ O) E+ A+ F& J
int *p,*arr_end; " ^, S/ O7 |6 j8 r9 R8 Q4 x% W" Y) c/ {
arr_end=array+10;
# H! ?! M/ ?6 l, \$ j) Gmax=min=array; ( J+ S+ h  o; X9 o1 |/ Q. ?
for(p=array+1;p if(*p>*max) max=p;
9 @% t. e: h) k! \. X/ kelse if(*p<*min) min=p;
; ^: J! e( F& Q* _+ L+ uk=*max; # u8 r- [4 a/ ?7 C$ a: A- Q
l=*min;
" o0 }1 w3 d+ H*p=array[0];array[0]=l;l=*p; 2 b4 N/ p: ]; k) t
*p=array[9];array[9]=k;k=*p; 4 {- m: \3 \- l1 A  Z& C5 X
return; 4 p7 q' u$ R- l0 a
}
4 b+ L! k5 i! {3 Koutput(array)
+ O2 }3 X; a' S& A: iint array[10];
- n$ n/ i9 \6 [" `0 F/ J; C+ w{ int *p;
$ e6 {& J7 _! sfor(p=array;p printf("%d,",*p); 2 y+ q% U9 y9 N
printf("%d\n",array[9]);
: U: _5 }/ ^, P# s( P8 w}
* @; P- u( x4 |" w0 t4 b============================================================== & L9 U* U$ e) f+ `) ]: n8 m, ?) s- j
【程序68; a2 q2 A( T, L2 B6 s
题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
) q  n+ w% W* h7 @- t' b1.程序分析: - k" U: A8 [% k1 v9 G3 [
2.程序源代码:
) p8 M, y* F/ q/ v/ X1 k& jmain() / a' G3 N0 u8 F( y2 j
{ ( F. k- }1 M9 P0 X5 x
int number[20],n,m,i;
( R& Z  C5 u6 P* h3 x5 pprintf("the total numbers is:"); . {1 M: L0 d& O& M# _
scanf("%d",&n); 6 i& p0 r% U8 V/ I8 x& Z
printf("back m:"); + s. l% P3 R3 y, E
scanf("%d",&m);
, A7 d( a: D3 p, W2 Nfor(i=0;i scanf("%d,",&number);
  |" l0 b$ T3 Xscanf("%d",&number[n-1]);
! b2 }. j1 j3 T  E+ Ymove(number,n,m); 4 |2 u& B& S" n- f
for(i=0;i printf("%d,",number); # ~# Z: I8 f5 x2 I
printf("%d",number[n-1]); ' i) q- J$ H/ V  F
} ' q8 T+ q  P1 Y. m8 i6 N1 K
move(array,n,m) 6 J4 b& w8 X  M9 Y3 |2 ?. w0 M* }& u
int n,m,array[20]; - W( M8 \3 `1 Y* s3 j- u
{
# q+ ~! f" S0 Hint *p,array_end; $ @) \* Y( F( e# l9 K1 x, [. j
array_end=*(array+n-1); . j/ x1 v- G! p# s' X
for(p=array+n-1;p>array;p--)
% r$ Y# m7 p# b" q$ r4 n*p=*(p-1);
& ?; p4 v; ~3 _9 a0 Z, i) U! P*array=array_end;
; c1 g  _0 B. ^: I# H, e1 {m--; 0 o* u1 X6 b! |2 j7 F, }
if(m>0) move(array,n,m); ( _8 N* U, N  z( u
}
) w" p! v" i) g. R- t8 i==============================================================
9 L' ?; n0 q' ^  b) m' @【程序69
$ |/ `9 \% W) O/ S  |3 R6 J题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从13报数),凡报到3的人退出
) U! E% L) D  l# k( E: ~; H* `# m  t圈子,问最后留下的是原来第几号的那位。信盈达嵌入式企鹅要妖气呜呜吧久零就要 5 V8 h6 q% J+ s! p! F+ j
1. 程序分析:
2 Q: g/ N5 K3 k; Y6 w: @) F2.程序源代码:
) |: @6 Y: T* }1 I1 a: l#define nmax 50 ! x( W0 x* z: A3 y5 q& r: X
main() * G& W. o* K; w, Z- w1 \
{
+ F) y9 t) b7 {+ S4 D% Yint i,k,m,n,num[nmax],*p; ( `, i- }; g) I6 n2 Y6 U
printf("please input the total of numbers:"); 7 I' Z+ T. ~. K8 `, F  i- h7 l
scanf("%d",&n);
. h% A5 x! P9 c& B/ zp=num; . n% F$ J2 `# m" g; b
for(i=0;i *(p+i)=i+1; . w% _/ y% a2 [$ x# ~8 T
i=0; 2 }; A  V5 z1 \
k=0;
9 S& C4 \# Z( ~" M! \' qm=0;
0 E9 S7 W7 F* g+ \4 f. Qwhile(m {   m- w& M' k0 e' i3 P3 O) Z& R! Y
if(*(p+i)!=0) k++;
! l+ R; q: i: Q3 }3 c: |) Y0 j  M8 p8 _if(k==3)
4 W% f) y0 `6 _1 b  a{ *(p+i)=0;
6 k. X9 G0 y/ U2 K2 ~( ck=0; ' @; G" t5 S- w6 V0 T
m++; 8 C2 k1 I6 ~( T6 Q) c( b) p1 R
}
4 o) G1 z  i0 [# f% _  Ri++;   j, {, [0 I! ~3 H
if(i==n) i=0;
; S9 J0 u" u) J0 u; f} - J0 k! ?  b) |4 x% E
while(*p==0) p++;
, V5 e5 b* g, x$ I" nprintf("%d is left\n",*p);   ?- O8 ]5 c+ v6 r6 L' V
}
+ Q& S6 y" K( Q5 F9 p==============================================================
4 n9 s; \  P/ [$ U* y& J【程序70# V( D: o# z. ^/ x8 T/ R- P$ {/ {+ V
题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
# }9 r1 {' M% ?1.程序分析: & b% t( M. U( G# ]
2.程序源代码:
+ Y( X. e' y0 h2 Amain()
; q7 U0 X' R' [8 R7 ^* N' k{
6 w& w2 Y" d2 H! D$ [int len; # s' R& _5 Z) R: R- h  s
char *str[20];
& m/ K4 h( _/ K1 [2 }! T* Mprintf("please input a string:\n"); 4 Q* {& P0 N. |, b. u
scanf("%s",str);
& b% V1 D$ f+ k; b5 D9 `0 l: B! ulen=length(str);
, Y# m! [- r. Q7 F& P# Wprintf("the string has %d characters.",len);
+ Q. y0 n; |6 Y. C. f& q}
$ B! y4 P5 T8 z; H" E. N$ Z* Llength(p) # a  a: O! i; }% [( G3 l
char *p; . h# ~6 b1 D/ a1 z9 k
{ 4 V/ B5 H; i  b% k
int n;
; n) @" r9 _; I, A4 @2 |, `: ]- P  On=0;
$ I+ S4 }& U% m) D) e# e4 u# z0 ewhile(*p!='\0')
; e4 g% `8 `8 L; j8 F# U4 N* K) f{
6 {2 [5 w8 A# p9 k$ b' I+ In++; , r1 Z$ C5 k( P  c
p++; % f: [" q2 `* ]" h& s, B9 Q) V
}
9 ?2 g  x* V8 q& {return n;
# `8 V' G7 L) f. M' {( B} 7 a5 ^/ l# v, |4 _2 ?. s) A
【程序71, ^; a( u% u0 i* W
题目:编写input()output()函数输入,输出5个学生的数据记录。
- L: s; L0 i1 q- I1.程序分析:
2 o+ e/ e: h- s0 k8 ~2.程序源代码:
: w& p$ R2 v. ^6 J; [#define N 5 . ]# x7 }. s2 @. Z3 R* c# [, `
struct student 1 z: I' e  s" c' s" @4 @$ U& h
{ char num[6];
) j" O5 @9 ~6 H2 h. I9 o9 E9 Zchar name[8];
6 h6 Q2 s- t7 D# Mint score[4];
  B; m- l8 O0 k0 n7 J6 T} stu[N];
8 T0 \) k6 V1 }8 I6 q$ o) q$ winput(stu) 6 u; }6 N, L8 f7 \9 \
struct student stu[]; ! q, ^# E9 k! o3 W1 c" w, n
{ int i,j; 4 W8 Z3 Q8 n, d4 j& @- z7 ?" _
for(i=0;i { printf("\n please input %d of %d\n",i+1,N);
( m7 Q+ U# c' M8 Dprintf("num: "); - t; Q4 `$ |; b- L/ v; k( U" t
scanf("%s",stu.num); 0 m0 ^; @; t+ t2 r
printf("name: ");
! O  G, p* [' i# m4 V- s  Oscanf("%s",stu.name);
' q/ c" E/ S4 c  S/ F& r# A1 yfor(j=0;j<3;j++) ( q1 B. @& y& `, l
{ printf("score %d.",j+1);
% s2 M. `- r* B) Z: M" C& J* f- yscanf("%d",&stu.score[j]); : Y6 t; P8 ~! ^3 e( ]7 K' {
}
1 }6 y: U+ w% r9 uprintf("\n");
( Z; e- d2 h3 P$ Z4 v0 p}
8 \4 w2 L6 R$ }} 2 C7 n% i/ N1 S! x& c) O4 q
print(stu)
( u7 {( Q& a1 V6 qstruct student stu[];
8 R% R: n: D0 \5 ^/ C/ M9 a  Q{ int i,j; 3 l( i  R! w5 D& c) a( r2 k/ J' m
printf("\nNo. Name Sco1 Sco2 Sco3\n");
+ Q5 [' {# g8 p) i. ]for(i=0;i{ printf("%-6s%-10s",stu.num,stu.name); ! R* e' g4 e5 N
for(j=0;j<3;j++) . W( d. w$ X5 z% c8 _% L# @
printf("%-8d",stu.score[j]); ( L. u8 g  H7 @* s' v3 H; H
printf("\n");
; F0 k0 C$ U1 {6 ~' R3 n} , o; i0 |0 l1 o3 e3 I& v
} , ~6 J- c7 R3 h; x
main()   f* [% B9 j$ _* a1 @
{ ' u9 a" o. t" R6 J# u7 Q9 }% q( W
input();
5 p' Z: p, ?# C9 a# x( P" t* ]+ Sprint();
2 r5 R: g# b2 s3 X% c} 0 @' A$ R3 B' S" ?. s, w
==============================================================
6 _4 w4 P0 I+ C5 Z% \% F【程序72* h% Q: p0 o" v5 f
题目:创建一个链表。
% H, H- R6 E: X! O; ^- W. O1.程序分析:
2 w+ d- j' m$ v( `) b* Y2.程序源代码:
- I8 P7 O: @8 g+ E% z$ j" ?2 W/*creat a list*/ 4 S: a6 Y0 u( H) z# c
#include "stdlib.h" : b3 |& Z& y3 D! J* [2 P8 G/ ?7 I  N
#include "stdio.h"
' ?; F6 g% P& H9 H$ j% Estruct list
7 N2 Z1 {3 ^' Q4 ^: f2 d8 y; _8 x{ int data; + g7 i3 [( W% m% x  Y
struct list *next; ( }( x* c) X# a+ M3 e7 i
}; " m2 s/ J+ j4 h4 @: F
typedef struct list node; ( n- c" U# T. m$ `# O# _
typedef node *link;
7 V, L. r* c( [1 V5 Bvoid main() 4 d9 c$ i. s4 r4 k" S( ?3 F! E8 I0 q( p
{ link ptr,head; & i9 I1 U$ W8 t: b4 D
int num,i; ( b. X) }8 }7 {( A" j
ptr=(link)malloc(sizeof(node)); . G  F, q) a' @
ptr=head;
) p) L- f' p( @8 J# `printf("please input 5 numbers==>\n");
3 T) `  N( L' w/ N+ q4 b: Sfor(i=0;i<=4;i++) 2 R( p' W3 }. ^/ G
{ 6 P/ x' n( i  n$ A% X  M$ f. A
scanf("%d",&num);
8 H2 I. D% b8 |- S6 zptr->data=num; - D5 f2 U- \  {! K& N' J
ptr->next=(link)malloc(sizeof(node));
1 J% a2 M1 f+ y; Nif(i==4) ptr->next=NULL; # t4 k9 P, L/ ^5 j7 e: s
else ptr=ptr->next; $ I/ S3 ~( h; k) ^4 e, p' b
}
  p8 W) }- O  j* k; qptr=head; + v2 D; S; I; _: L- l: k, |( b
while(ptr!=NULL) 1 r- e8 }5 N; V3 m" y5 o6 y3 S3 k
{ printf("The value is ==>%d\n",ptr->data); 0 W6 ?4 [9 n# m* z
ptr=ptr->next;
* N* V0 U; k% L/ U8 [% s} , k0 N9 R7 r- y5 `
} 2 M# f& s- H& Y9 @& W: c# B
==============================================================
# `" Q$ w0 \2 E, a【程序73
' P) _: U  t- v) K题目:反向输出一个链表。
. ^& G  l' d8 @8 z1.程序分析: 0 R% m3 c& Q4 E' d
2.程序源代码: 9 A" W! w0 L- m( @$ g
/*reverse output a list*/ 7 ~# T7 I; n  [5 f; Z8 R! H
#include "stdlib.h" 2 S& F6 V( A  w# [. ]! s
#include "stdio.h" 5 G+ M' }( [( T9 ^. A" M
struct list
* k+ m1 o' K9 i6 D' |{ int data;
7 {% b; Q) A: O2 W3 B+ _struct list *next; 8 K1 ?' {+ N5 u. d4 X
}; ) [+ h1 k; p$ f( I! y8 n% M7 h5 ~# P
typedef struct list node;
9 g( G: a7 P0 h1 c' ctypedef node *link; ' L- S8 b9 Z& O5 v/ [5 u; y
void main()
6 [9 c0 j, M6 _& i* j6 Y{ link ptr,head,tail; ) E1 T+ L0 l" M1 E' {' l. f6 y" @
int num,i;   q0 z- w, b1 l. }7 b
tail=(link)malloc(sizeof(node)); : U& m$ J6 s! b. m
tail->next=NULL; 7 V" @7 A9 m4 q  R$ h2 Y
ptr=tail;
# y8 p% Z* `7 ?6 t1 Zprintf("\nplease input 5 data==>\n");
* t3 C3 J! K! v2 Qfor(i=0;i<=4;i++) 6 Y9 ~4 {. i' f0 k
{
' U2 h/ k8 \7 T; Qscanf("%d",&num);
+ b5 W) E. O9 Optr->data=num;
2 Z+ g* G" v6 E* y) nhead=(link)malloc(sizeof(node));
; B2 F4 f% X# A0 }' k* ehead->next=ptr; . `$ \" F6 ^8 c* J- s' V
ptr=head;
+ H( Y5 S3 f' v; k& l" k4 s} ' k3 w$ b# d2 K: N3 ^
ptr=ptr->next; ( Y0 @  l  J' i0 s
while(ptr!=NULL)
7 z/ e( ]# `" P# a( @- F& e{ printf("The value is ==>%d\n",ptr->data);
3 R5 Y$ K: J2 {- }# B: p; {9 _ptr=ptr->next; $ u2 ~2 R  _0 y
}} 5 N4 z8 I& ^, Q6 Z9 D
==============================================================
" b8 U# Q& y/ H/ a% _- @1 y【程序74
& k# w* U9 A3 C0 N, h题目:连接两个链表。
1 I1 M- R/ H! B' n$ A3 W, x& Z3 c1.程序分析: # p: B2 E, I6 |, |- ^) c( o
2.程序源代码:
( |3 q0 {. i& q, p+ M% A2 o; {: m#include "stdlib.h" 4 m! i- _/ C0 a1 }9 {4 x' R1 [
#include "stdio.h" + k& f/ j3 z5 B/ z2 v8 [9 {/ s# ^; _
struct list ( I7 m! E0 j8 |( u2 Y1 b; W, o
{ int data; # y+ h# f* }9 ]" i) K" \
struct list *next;
! Q# O/ |8 l4 j, _7 |}; + a4 l/ r  ]7 l
typedef struct list node;
& R( F$ H/ ^' s1 R4 e4 Utypedef node *link; ! u! r- n) |  u% q# v
link delete_node(link pointer,link tmp)
/ x$ i& X9 O& w$ D3 f{if (tmp==NULL) /*delete first node*/
' @  @' q& X( G1 n0 greturn pointer->next;
( m- q- }& F6 {! I1 W8 |& delse
% P; y% y* L1 F9 Y0 t( ]" F{ if(tmp->next->next==NULL)/*delete last node*/
# o0 \5 U+ Y3 q) b, _7 Q) Z  jtmp->next=NULL;
% R  f: _) W1 ^2 Y. v* m( e3 oelse /*delete the other node*/ , l' S: m: l9 c4 h  \
tmp->next=tmp->next->next;
; V9 n- C; P( e" Y' B* areturn pointer; ' j7 v( p8 `9 Z9 I) @
}
9 @1 I* z; m; m) ~! \} ( {* l; I& z  o9 Y% W
void selection_sort(link pointer,int num)
: [0 X6 ?) E# n5 k- K, L. J{ link tmp,btmp; 8 C! R5 ]' n( {) [+ z
int i,min;
/ {6 r. x7 O$ e- x( }for(i=0;i { 3 w" u! L  C$ r( N) L! \2 n$ z
tmp=pointer;
# E# C' p. ]7 ]1 C- imin=tmp->data; . t  ?/ J4 a5 N; _1 o- g4 u
btmp=NULL; # p, R' E* N" D0 I
while(tmp->next)
8 D4 ]3 e/ v/ a' E{ if(min>tmp->next->data) 4 d( L5 I) p/ w
{min=tmp->next->data; 5 Q- j* u, Y/ `# R- f; H  ~
btmp=tmp;
% n$ ~, p9 J( Y}
1 k& S" }3 i- K1 A) mtmp=tmp->next; * I, g( i: X! L: ~; U5 Z
}
$ P3 a# ~9 M& Z  U  cprintf("\40: %d\n",min); 3 I; t! O8 L. z  Z
pointer=delete_node(pointer,btmp); , [1 m+ p% D  U3 h6 q7 J, i
}
* u- I* y$ c) i! Y  Y}
9 N2 n& S: d" C3 flink create_list(int array[],int num)
8 K5 O$ \2 d0 z- d9 a$ |" Y7 I{ link tmp1,tmp2,pointer; $ j% z: n) j! {" E$ @
int i;
( q' U* J# w. Ypointer=(link)malloc(sizeof(node));
8 s, z, @8 m# @( d3 \& z' D0 F: ]pointer->data=array[0];
. w/ e; p# o3 ^6 I/ Itmp1=pointer; ; q& n6 b# j1 V! A$ Q, Q5 s( U7 f% \
for(i=1;i{ tmp2=(link)malloc(sizeof(node)); 4 g! G0 A- U# l, o6 n
tmp2->next=NULL; 0 l( r4 Q- C! \
tmp2->data=array;
/ @9 g8 d3 }) }6 Ctmp1->next=tmp2; ) D) i4 U8 O$ T' E, b
tmp1=tmp1->next;
8 ~7 v5 {% |9 l} 6 g/ ]1 ]. V8 H4 `3 d9 N
return pointer; & P" C; O9 Y! V+ A
}
0 |. p& E) f/ m( }% Ilink concatenate(link pointer1,link pointer2) 3 a. Z+ j  `7 k# g
{ link tmp; % l8 s3 p3 I; z( ]! t
tmp=pointer1; ' g6 L/ B/ G9 d" Z7 n4 B
while(tmp->next)
* A8 p) t9 D/ a% \2 v) [tmp=tmp->next;
0 D* d/ T0 w6 Z2 ftmp->next=pointer2;
' A# E  ~2 J, V* _: r& zreturn pointer1;
, K; n/ B" V% i* z, T( F/ U} " G+ F% C$ K" b1 ~+ f: o
void main(void)
) |" y* l5 ?8 t  \. y. U% J{ int arr1[]={3,12,8,9,11}; * A- M) G$ r/ t8 K: O9 k1 I
link ptr;
% K! a% e/ R; ^' Hptr=create_list(arr1,5); : Q* f! L  ]5 P  a9 _$ \& k+ d: S* p: N
selection_sort(ptr,5); + s9 q" T) h& n2 L( j
} ! J1 x5 N5 M/ B) f8 Y3 I$ |4 L
==============================================================
8 }# P5 b7 s2 v& [, @【程序75
, ~! A+ K% u5 `# Z题目:放松一下,算一道简单的题目。 . j4 t. ]) B3 t( z# f
1.程序分析:   b4 G+ O+ a# |% A- C
2.程序源代码: 3 s! p: o8 i2 m- J/ l% A
main()
. h; [0 C" T3 }; n1 m{   N% i$ c0 x, r( b. N7 O2 @: \
int i,n; $ B; c. F( G; R6 u# u( r4 y
for(i=1;i<5;i++) & n% j: I; |# h0 x% }3 _' O: x7 C
{ n=0;
: u7 T3 Y  N6 N2 o5 U1 ]( qif(i!=1)
" _4 ^# L. `  @3 z9 pn=n+1; , e  p: H& V+ \9 V5 x9 Z6 t+ L& o
if(i==3)
" J6 a4 i9 {5 m. w1 s( z5 sn=n+1;
& y* X+ U. B" i" I/ U" Xif(i==4) / j. V7 X8 _) z& |9 e! j
n=n+1;
7 u6 h3 Z& {$ F+ x% e- y: @if(i!=4)
1 A; `$ h' r! K( q' |: Cn=n+1;
$ r/ n, D1 M( k% P7 Gif(n==3)
- K; U3 ?6 a  h% u( Yprintf("zhu hao shi de shi:%c",64+i);
6 |: i5 \  o6 m- b9 h+ I$ h" g  E- i}
7 D- n% w1 k- d& t  P}
1 Z# O  e9 Q& y==============================================================
, ]! H( W  ^' c) z: k9 p' B0 ?6 t【程序76
  p' T' B' S4 I/ E  Z9 ?$ M6 c题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数
6 x+ t, L2 e4 {" k* I6 q2 o1/1+1/3+...+1/n(利用指针函数) . Z$ ]) O# a/ Q& k/ x( A, V
1.程序分析: 5 A. q) F3 n1 U, I6 d
2.程序源代码: & u5 q( L5 M' b
main() / p# r6 A$ d4 J. `- x3 ]9 d1 N" Y
#include "stdio.h" 3 P; F+ ^7 O* l- R$ z6 X9 d8 f
main() ( H- N( |4 G* @# X, x! q& t
{
/ h# P, H9 t% Z% Qfloat peven(),podd(),dcall(); & \0 `; ]6 _4 y
float sum; 7 C: F/ |, H6 D! L7 s! `# K
int n;
$ W3 |6 y  {0 u' [; u, s; x* Twhile (1)
- B$ D# [5 K! [* ?$ A6 g- W{
+ d- i' i, A  g2 i' wscanf("%d",&n);
, Q6 L2 X; G# f# }: _2 u* zif(n>1)
7 b" G* {6 Y- H% h. ]! a" qbreak;
4 ~$ `6 U2 u  V" q' i}
& _' J: E: I' d; d7 t; {; v& Tif(n%2==0)
. \" P7 u) U6 k. e' E8 W{ % R: P- A+ Z; z4 g* B
printf("Even=");
4 C5 y4 n$ z, K* M% gsum=dcall(peven,n); $ T/ X6 m% V/ q8 C$ m3 @3 j
} ' F( @# ?5 ]* Q5 F! p  ?1 y
else 1 U. T8 O% x8 h/ B  o  e' Z
{ " F8 A% D: z4 \4 z3 V
printf("Odd=");
( m' B8 y# \0 P7 L1 O" n2 nsum=dcall(podd,n);
+ s* J. l  I, M) {; c* d} 9 {, P" {9 [* {9 s0 B: @
printf("%f",sum);
; j  q; ]* R9 R7 b% x) T( @# E' @}
. {$ \3 F+ B3 l" B" {6 Mfloat peven(int n) * \& j' j9 I1 s- r7 I! F
{
3 z8 d0 f6 K1 X" Gfloat s; 9 q  F  a6 }0 U
int i;
- Z: [4 M; Z  W4 |7 E& Ns=1; ) o7 _- C% t$ K" h: `, ]9 t$ i
for(i=2;i<=n;i+=2) 0 w# B3 H! V+ K! i( a
s+=1/(float)i;
( i/ L1 i1 ^0 \: Ireturn(s);
7 A" S! `  d) w: @2 K# O# W& n8 X}
$ W  m- P- b* s2 o, |! ~2 Jfloat podd(n)
5 z( I  c$ x! `int n;
( i9 O6 ^' ], T6 _& t" A{
+ m5 |" w+ j0 a$ ?! |5 o: k# qfloat s;
- `1 g! n8 ^6 I$ kint i; % ?8 r) S& P4 D- D' {  J& w
s=0; & w4 V" Q. l9 v+ P
for(i=1;i<=n;i+=2) % W4 M3 N- O! k  X9 z
s+=1/(float)i;
& ?, y4 C! c! a( W! G$ breturn(s); 0 e7 u, w" x5 |) D( K4 d4 A5 R3 M
} , B2 v. P3 n0 R0 k0 k0 m
float dcall(fp,n) + W5 h; c0 W- |( X4 p% Z* @
float (*fp)(); 3 Q) G* c7 L' v2 F8 w' c! `7 Y' O1 Q
int n;
0 n& j5 L$ s% I( e4 b+ e{ * D! u: q) T6 o. Q- E) ]
float s; : b3 ^3 R) \3 I
s=(*fp)(n); , {% d2 p; D. K  m
return(s); 1 E- l, f% B6 ~3 H
} " ^& `; r( N3 L8 C/ _+ c
============================================================== - S1 T9 G6 Z, i

, n! U8 \* N- I! ?) \0 D
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2025-2-19 06:28 , Processed in 0.057695 second(s), 33 queries , Gzip On.

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

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

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