找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

C语言经典算法67-76

[复制链接]

114

主题

136

帖子

1000

积分

四级会员(40)

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

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

EDA365欢迎您!

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

x
【程序67
: i* [' n/ |  I" Y1 r, V3 O题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 4 S. j% G: y9 W: o( G+ w
1.程序分析:谭浩强的书中答案有问题。 % M+ _& k0 @8 H" n# T# d7 e$ f
2.程序源代码:
: u+ E& ]! l( X# z# q% `main()
2 L0 `$ |4 l/ S: o2 a. T$ m, E) C{
" j: Y  {. z: `- R$ vint number[10]; + d, ~! N0 |6 h; N& |7 p
input(number);
1 k4 m, B  r' ?8 Jmax_min(number); ; h! r0 X6 b) E, _1 k
output(number);
2 V& O/ a) h* z. L6 f}
" S8 I' Q  e' @input(number)
0 M7 Q+ H4 Q' Y, X/ d& o) Gint number[10];
) l6 ^3 W6 i! \" d. x{int i; " N, H- p3 a6 N/ X
for(i=0;i<9;i++)
5 N/ U; j$ T+ Yscanf("%d,",&number); ) p, c! l% A6 E; ], ?) @
scanf("%d",&number[9]);
+ t+ [- i% G3 _. w, @}
9 W+ {$ z5 L+ J  O3 omax_min(array) + `) p7 T3 G, r4 n* |1 C0 O9 C
int array[10]; # V. P* U% O0 z' g
{int *max,*min,k,l;
# N) M7 I2 r7 t$ V8 |: H5 f/ ?int *p,*arr_end;
* O% V3 {& k! \, w' n+ b) Aarr_end=array+10; + Z! C+ z' c- w
max=min=array;
) g7 C& Z- B) J' n' Sfor(p=array+1;p if(*p>*max) max=p; ( D  q7 _3 p( f/ v5 I5 t' q
else if(*p<*min) min=p; 5 d9 u6 c! Y4 ]0 P- ?9 U  v( M
k=*max;
6 D0 \. R) c8 f$ I  t9 Il=*min;
" F' c1 i- F$ o+ H" K7 n/ B4 }*p=array[0];array[0]=l;l=*p; ( j; \5 t, c& ~6 i/ p
*p=array[9];array[9]=k;k=*p; 8 X+ \7 y; O1 v& L$ H. M
return;
+ ~% ~) o& i8 _2 x$ R/ X6 L} 7 M, X% t. `( P4 n. B. g
output(array) ; X* l: U/ u( h2 A; M! |
int array[10]; # R$ Z/ P: q% u9 d
{ int *p; 4 H' X$ z7 a7 Z" m4 D
for(p=array;p printf("%d,",*p); 6 ^- v/ r- W' g7 G$ s- ~
printf("%d\n",array[9]);
* i1 ?) h; v$ x! m}
/ ?9 v& h& j' ~, n2 S, |============================================================== 3 p! P; Q. T1 x' R
【程序681 N9 y% J& M6 G+ e' ?2 r* W
题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
1 R# ]. j1 }3 p# L5 k1.程序分析:   |3 R* A6 z  K* i
2.程序源代码:
4 O- _  S! r  X" b' cmain() 0 C- V! O) C* t$ s! s
{ : I9 g% h7 Q* n( M
int number[20],n,m,i; 3 L  j* u9 W; M& p6 a1 l  F
printf("the total numbers is:"); ( Q& w% R$ }& D/ p4 }6 }, {
scanf("%d",&n); . W8 \: H' C+ u: _& B
printf("back m:"); . f! W- Z' \8 s1 ]! z6 Q7 z3 c* U
scanf("%d",&m);
( T, _2 z+ K" S5 h" vfor(i=0;i scanf("%d,",&number);
: t4 `# Z& x0 V; K& V4 Ascanf("%d",&number[n-1]);
. B4 p5 Z& q/ R, i( i# w) C; Xmove(number,n,m);   S0 l5 k2 i' F+ r2 T2 ]3 v. M
for(i=0;i printf("%d,",number); . R) n1 y( j( ]* T" Q
printf("%d",number[n-1]); 1 P) g& X4 x& `  m% {! x
} 3 i, [( A/ X: i6 U1 K7 t3 @
move(array,n,m)
9 [7 ^8 q2 D& U7 x" rint n,m,array[20];
% z$ ~# {/ B0 d8 A( c, D{
$ I+ t8 p% U, m) s3 t5 N% a4 wint *p,array_end;
7 a7 y+ S. c6 g! t( N( R' v* ^array_end=*(array+n-1); 1 C: R, P" i- W5 W2 H+ q
for(p=array+n-1;p>array;p--)
- \7 f0 i) X" _3 V. Z* T*p=*(p-1);
8 Y. d- a- U. A# P- _% A' x*array=array_end; - C1 q8 R' e" A7 W
m--; 3 T8 X" D8 R- c1 x0 {
if(m>0) move(array,n,m); , k, e) ~1 g0 p& A. r
} 3 a) E( i+ @! X9 {! J, O8 l  E* L
==============================================================
4 Y/ O) q8 \3 w0 {! Z: `【程序69
  m8 }% R3 y# f/ R题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从13报数),凡报到3的人退出 2 G  t6 _" O5 h2 ~4 y" N4 e( N
圈子,问最后留下的是原来第几号的那位。信盈达嵌入式企鹅要妖气呜呜吧久零就要
1 r% N% h3 u8 d7 s" G( I- l1. 程序分析:
2 f; Y5 d. @/ R5 m: F3 b2.程序源代码: + v2 l! ?" L" u$ e
#define nmax 50
0 f' x- m% b4 P0 r7 ^2 {' s# g8 F1 ymain() 6 F" l, n  Y( `
{ 6 L2 U5 F7 ^9 a5 K8 a5 Z, t
int i,k,m,n,num[nmax],*p;
9 Y0 C+ I, i! i- Aprintf("please input the total of numbers:"); + P8 V5 c, j  V" Z
scanf("%d",&n); 2 n4 K! ?% h$ `; n
p=num;
2 y/ x& |2 j& a# f" [& P4 dfor(i=0;i *(p+i)=i+1;
0 c. |. C5 S" |! Vi=0;
: ?5 @, |4 N0 w1 A/ P: ~k=0; & D$ e- L* P. y! t& ]9 s8 c
m=0;
4 V/ H9 E$ v5 dwhile(m {
  U4 e# ^* {2 b# s5 \% Z3 Bif(*(p+i)!=0) k++;
7 ^* v% l: Q6 K/ aif(k==3) & l) L% o. \! U0 w
{ *(p+i)=0; 5 J4 N# x$ d2 A+ L" u+ M
k=0;
$ v/ s( o( Q) m" A, `$ _" O+ o( q6 Jm++;
4 j4 L6 L0 c9 y1 K& p( v) a  z} / s0 }# J9 g( W+ W$ |) Q
i++;
1 `6 i4 o/ R/ S7 k/ h3 L4 Zif(i==n) i=0;
% t  h' r+ n8 ^5 r}
, C6 l5 p7 G2 J  _+ U. l/ Xwhile(*p==0) p++;   a8 s- O' N! b- }
printf("%d is left\n",*p);
8 G; |1 k, s. M. f1 y/ L' w} & }5 [+ j" ]  l: g& e; q" {0 |
============================================================== 3 K. r+ @* \: a' u$ G- j4 y+ u
【程序704 g2 @% M& \! h
题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。 # a+ P& P0 @5 a  L' Y6 `
1.程序分析:
; w' u+ E# h1 R# c) e) X, A2.程序源代码: ; z9 @) Q' s* W% M7 Q
main()
+ X' Z. F7 w: m) }& v; r{ $ M. Z+ b" I7 ]' g" E
int len;
2 A0 f4 h. P* k& S, f9 i( J1 Hchar *str[20];
( v1 k3 R8 G# L3 Yprintf("please input a string:\n"); 9 j9 F8 \: |7 c6 I1 r/ `" U. W
scanf("%s",str); 4 t; @% I" M$ G1 F( n/ ?
len=length(str); ) Q3 Q+ c- N9 ]* d, H
printf("the string has %d characters.",len); 8 V9 D0 i' ~, M. n5 c/ h- i* Y; j& U
} $ R  T$ B/ o. w  n1 K: E
length(p)
/ U+ E* h) c, s  s+ n5 Ichar *p; * w4 h2 e6 s( l0 E
{ 7 B2 R. N  @: H0 R2 L" T
int n;
# h# l' R2 d; r7 e4 X2 ]n=0; : R# N3 f( v; Y4 }% M8 I( f  C
while(*p!='\0') 9 t7 c2 M: `# |$ U0 h
{
# G7 M! X3 }/ \2 k! z" V) |n++; , u# T/ {% A; f% D0 k% n8 V- R- A! a
p++;
5 y3 E* L- I3 t% T}   ^, z- r6 a2 z* e8 Q
return n;   Q2 \: K& U4 f: N( |( `0 D+ [# [: w
}
7 p, I  f2 [( F【程序71" _- q  a- L1 I$ o8 C& s
题目:编写input()output()函数输入,输出5个学生的数据记录。
$ g0 Q% P: m  U' T0 H; _+ a1.程序分析: ) r" {- ?# g/ A
2.程序源代码:
% y' e* {- g8 U1 z* E0 E#define N 5 & d3 _+ U5 U2 {* S3 F$ |
struct student
6 H* U0 F4 X+ q! P{ char num[6];
' f( q9 D6 J$ w5 y9 ~7 }% Jchar name[8];
+ N- }0 Q/ C/ X- D/ Y; \8 zint score[4]; 6 l% H6 N% b' @, d+ K1 i
} stu[N]; ) g, a5 D: u0 }% Q3 I
input(stu) ' i5 X: T8 f  P" K+ u5 l( h) D
struct student stu[];
" s  _+ n, A  _2 H5 u5 ]+ d% Q{ int i,j; ) s% H% v$ R1 a$ n+ m$ e1 n( ~. a' D) a
for(i=0;i { printf("\n please input %d of %d\n",i+1,N);
3 n7 l- h7 _2 t) c; @( u( n" rprintf("num: ");   z0 |& d0 ~. Z4 ~7 c. ]' u
scanf("%s",stu.num); : b8 o7 X7 B8 m: @0 W/ V/ ?
printf("name: ");
5 D% Y. K) V' k6 o; X4 T0 |scanf("%s",stu.name);
" S* K2 z- n7 R& jfor(j=0;j<3;j++)
! L' w8 h0 m/ W6 C{ printf("score %d.",j+1); 5 {0 W0 I  H2 \( u; [) h
scanf("%d",&stu.score[j]); 8 z3 d) f% B  j* l
}
/ v" w; _% J- ~8 C6 sprintf("\n");
( Q. |. ?/ M$ N8 [7 U6 |7 w! E}
7 y: x2 K) f( w} 4 n4 D  E2 w& G
print(stu)
& S9 S8 w+ a0 D. o* }* W4 E2 e! Nstruct student stu[];
; _/ _; o, F; G0 J+ o+ F0 x( O# [1 i{ int i,j;
, J% h  e5 y- z# [9 }8 T( Hprintf("\nNo. Name Sco1 Sco2 Sco3\n");
- |: Q; a! c4 g, v, g5 Nfor(i=0;i{ printf("%-6s%-10s",stu.num,stu.name);
' f$ l: z# i5 w6 {) Z& m7 Qfor(j=0;j<3;j++)
7 k- I4 C, |& U6 a( Z" ]" U6 }printf("%-8d",stu.score[j]);
: A$ \4 K* M& C. N$ i9 a5 Lprintf("\n");
, w5 h3 I& r% S. ^}
: I/ A6 v8 V+ L% A5 g}
5 N# x8 a, C1 o0 m, U5 e3 ~- Ymain() ) D$ d0 a  F6 q
{ 4 f- W  W1 Z6 R4 a# c9 k
input(); 1 T) j4 ?/ Z  M2 u, z
print(); ' B# g$ D$ y3 w# U' R
} 8 _- f, Z+ L. y, u1 j
============================================================== ; f: ?# ]; L% f! D2 u! g, m
【程序72
: r2 X3 b0 p& R题目:创建一个链表。 8 O- D- g! e4 g0 j5 g1 m
1.程序分析: ! k; p% N# r& h9 `% J& k/ k
2.程序源代码:
9 R) V0 G8 K* h; H3 n5 @5 l/*creat a list*/ : P$ G! [: \, @& l
#include "stdlib.h"
! |  b( O/ p. R#include "stdio.h" " {3 }) i# j7 y% I, O' c1 N* Y
struct list
$ ^; b8 M# J& F6 f4 d{ int data; + a6 h& s* t- H' E% ?5 d. y' c
struct list *next; / z$ H% w! L& I
}; ) e5 p- w( x3 o1 m6 B
typedef struct list node;
( D7 v) L; N0 o* \3 Ztypedef node *link; 9 x) l0 M! V4 T  x+ @5 A- ]
void main() 5 c1 X4 r& z4 |$ t6 J* C
{ link ptr,head; - o6 u* ]' u7 b; x& v' r) J- Z
int num,i;
1 f* \2 \: e6 U% |ptr=(link)malloc(sizeof(node));
& M) t( [7 X5 v$ C0 b" r4 sptr=head; ! Y6 U, q* b9 c) X3 n" D) ^6 t# ~. c
printf("please input 5 numbers==>\n");
7 o& B, O4 @- h# \7 _( k5 dfor(i=0;i<=4;i++) " S! e, v- Q# \+ H: ]& Y8 h
{
9 v+ V# q$ N% n' O- s  vscanf("%d",&num); 0 h2 K4 Z- I- _
ptr->data=num;
5 V" o2 j% L: b4 h7 hptr->next=(link)malloc(sizeof(node)); 7 v+ @1 i" i. K8 p# [
if(i==4) ptr->next=NULL;
7 o& b- x1 J" U4 ?5 ?3 oelse ptr=ptr->next;
0 @5 `' w2 O* j3 ?9 i- e9 r} 0 ]5 c- a/ o7 K# f. i7 o! b5 K/ W
ptr=head;
- }" T& p2 z, [0 p/ X# Pwhile(ptr!=NULL)
5 S8 _0 K. {& {6 j9 j$ M8 }, x* f{ printf("The value is ==>%d\n",ptr->data);
- x4 d( t1 n) M" l& ^ptr=ptr->next;
, [5 I$ R& O7 ]- ^9 L}
/ e, Y1 g/ {  ~3 E& }9 K3 O1 i} 5 p. Y) G# r% M% i$ ]' e
============================================================== 3 b8 U, t7 @6 a' ?8 p
【程序73
' }) j4 Z3 o. A0 u  ~/ x- Z2 [题目:反向输出一个链表。 / k  i1 L8 [# _$ |! n) R9 [
1.程序分析:
' a, ?4 f. ^/ c( Y4 K1 {- z: U2.程序源代码: 8 ]! h/ n2 V/ ]- r+ |" E
/*reverse output a list*/
. z2 S$ w, @( |9 e#include "stdlib.h" : A7 A5 T9 Q9 B* i
#include "stdio.h"
# K; K' ?- P7 o- p( R( n( V& k* }1 }struct list 0 Z( R: V" E9 n9 ~
{ int data; 2 }# k; f( X, Z3 \6 n  q
struct list *next; * ]' T! v7 r5 Y9 k3 d
};
9 Y# A4 K6 l! Stypedef struct list node; ! T1 S. P  y" M! U3 `5 b, b+ M
typedef node *link;
: R' @% z# m" r4 L0 ?: D' c* U' E. V5 tvoid main()
/ S- X; L7 @2 I# R/ `* k; e( P  u' g{ link ptr,head,tail;
9 k, W1 i2 |% ~. g8 h* w5 s# I+ G) J$ jint num,i;   C5 D. x( h$ X+ |
tail=(link)malloc(sizeof(node));
8 ~' G9 Z' g  Otail->next=NULL; 8 N) N; ^# H( m6 w! ^) q
ptr=tail;
7 I0 D' Y! ]. \- l3 Vprintf("\nplease input 5 data==>\n");
  L6 \$ C$ ]: b  f% s8 G9 h/ ?for(i=0;i<=4;i++)
3 L. W/ y1 G; b, B{ + S" j$ _& _$ i9 R5 Y
scanf("%d",&num);
& Y/ r! Z3 a- rptr->data=num; ' X2 ]( [4 n9 y1 V8 i3 O+ E
head=(link)malloc(sizeof(node)); ( F0 ?" N  y& @+ U2 e: k# U
head->next=ptr; 8 W0 @/ G6 a( _# W. U; ^
ptr=head;
% p5 T0 p4 f  e# I+ T}
8 ^6 X8 b. y0 H6 y6 C$ ?  Yptr=ptr->next; / S9 T- D: W6 M
while(ptr!=NULL)
9 I, G( t! R5 A' _{ printf("The value is ==>%d\n",ptr->data);
+ T2 m; p6 g9 {) t8 z& `ptr=ptr->next; : _  {9 `6 \! T! D& b# K" H
}} 3 P1 R% q/ X5 z
============================================================== - w$ Q7 e* Z+ l! D& {2 a4 O4 s
【程序74
, n+ O/ L& W; ?3 z7 [. C9 r- g题目:连接两个链表。 8 k8 C' w6 i0 L$ w- _: W
1.程序分析:
( Z3 U. l7 e8 j8 v0 d' D! y3 ~2.程序源代码:
1 ^/ r/ `+ [9 d; w5 e, w#include "stdlib.h"
) e! B6 J$ ~/ N: K  R9 _) ?& q#include "stdio.h" 6 E3 C2 f5 x, f' i: b8 Q: B
struct list
: u4 j7 k: m+ \0 g! Z{ int data; 5 V- y! o, q% _/ r+ d
struct list *next; * a! j! m; l  ?6 x( m) y
}; ) V6 ^6 W( C0 y" ?
typedef struct list node; ( J6 Y6 l- O9 E2 s8 @
typedef node *link;
6 w6 T9 W* y% u1 f* g$ N0 F9 O  ~link delete_node(link pointer,link tmp)
8 ^& P' V% u, w; _{if (tmp==NULL) /*delete first node*/
+ I, l3 N- z/ ]" a% wreturn pointer->next; % d; C% G7 P3 d  n! J, M# }% D4 u
else
9 k- n% y5 M& S{ if(tmp->next->next==NULL)/*delete last node*/
* A; p+ v' R  L% ^) [+ rtmp->next=NULL;
, N5 n* U$ i+ a; g8 Pelse /*delete the other node*/
& \1 y5 B- n' ?( P2 ^% {tmp->next=tmp->next->next;
! [! c+ z! ]' ^$ {return pointer;
" b7 r# P! C# M: R8 d}
6 T+ M. V% M& L7 H6 u} / o0 ^1 t) r2 L  C; @
void selection_sort(link pointer,int num)
5 w- p% k6 n  X6 c+ s7 {  `3 t! _{ link tmp,btmp;
8 l7 x, a$ _0 g7 ^& ^8 L* wint i,min;
5 J) `# J; f. ]for(i=0;i {
4 X  r9 g9 [. \* b- Etmp=pointer;
; w8 F9 C  ]/ F9 g7 B! b. s* Lmin=tmp->data; ; ~3 g: I- K. x& T6 c) l
btmp=NULL;
1 \2 Y6 M, z% b* S$ Kwhile(tmp->next) ; K5 B' [4 I( a, @6 S) r# S, J& K
{ if(min>tmp->next->data)
) u" T9 a  {$ a2 P- E{min=tmp->next->data; 6 Y- @" f. ^0 [6 O, T, j
btmp=tmp; / c9 d. r: x4 R
} $ E8 s0 @. s& V6 q! P4 B
tmp=tmp->next; 0 D, E, j( R- O
}
; H1 [- o: A1 H$ @& ]) D& q6 e+ B$ Jprintf("\40: %d\n",min);
7 L9 y1 T. I  Ppointer=delete_node(pointer,btmp); 3 O6 J( u! d/ w2 Y! V
}
/ z, m+ }) p+ F4 ]! \& D} + A+ b1 I/ S; I: a" {2 U
link create_list(int array[],int num) " d- G( G4 B& O8 W9 g
{ link tmp1,tmp2,pointer;
- Z) Y# U7 f! L/ Fint i; 3 c9 R0 n. T9 _( r' \' n
pointer=(link)malloc(sizeof(node)); 7 F+ g( r% E9 C" D6 Y- @' C  S
pointer->data=array[0];
7 K4 ~# X2 f; B  S. Stmp1=pointer; + f! X" i8 F% k' H& i$ g+ h- c8 H
for(i=1;i{ tmp2=(link)malloc(sizeof(node)); 3 O5 Y0 r9 E" j( n& M& ~
tmp2->next=NULL;
" F' S3 c) x& |) V$ Ytmp2->data=array; ! i5 A* e- D8 w3 h: [1 D
tmp1->next=tmp2;
0 ^& ], e! {% F$ {! Otmp1=tmp1->next;
* h& t& r" x5 T2 H# R' k$ O2 \# d}
) U8 G" k/ d0 U6 s% r/ lreturn pointer; , H7 a: S7 d* P( D
}
( X+ H5 X1 n; V- y9 J( x* [* Klink concatenate(link pointer1,link pointer2) 1 G& U/ |1 E$ o% h" S
{ link tmp;
: N$ o1 g6 H& r7 W6 htmp=pointer1;
$ @7 S. b+ S( Fwhile(tmp->next) $ S0 |8 b' t% q- E/ M  B! c
tmp=tmp->next; / h* w% r- v2 |: y
tmp->next=pointer2; * w0 A9 ~; z# y% d. _+ w& A7 U9 n. v
return pointer1;
1 p2 c$ B2 k7 \. y; G" K) o) g4 {} 1 _, Z: S) [  E) Q& j6 o% R
void main(void)
5 [( V* g* u9 W0 b4 Z- I8 A{ int arr1[]={3,12,8,9,11}; ) \8 G& A7 S2 S( M8 {; q) A
link ptr; 9 T' r) Q' Y8 G$ D7 H
ptr=create_list(arr1,5);
3 y( ]5 g0 d$ Q7 M$ q$ d0 Gselection_sort(ptr,5);
) A6 f. [$ A+ O! Y} # S# X/ R2 {1 W. a$ Q
==============================================================
" m  Y/ F* d3 [$ A) V【程序75
0 V' q& Z) i) x% X题目:放松一下,算一道简单的题目。 ( r  R: |8 ^7 j9 a
1.程序分析:
  E# o4 s: V6 i6 c7 L$ S2.程序源代码:   z1 o8 ]& {6 m8 B' E$ L" F
main() , X5 Y+ o* Q( _* M5 Y1 e! X8 l
{ $ K! O, ^/ F- H" ?" d
int i,n; 3 I5 d, b4 n1 T, R; S: D: T$ B" g
for(i=1;i<5;i++) 3 \( I% J+ W$ ]! ^! y2 d
{ n=0; # g" O9 ]6 _# B' N( V
if(i!=1)
* q* J6 Y+ E* k1 ], ?: ln=n+1; 1 [0 D: @1 ~% Z( h7 h
if(i==3) " C$ C9 Y" o6 C% s& p# a- k& G5 A
n=n+1; - h" j, Q" y$ J8 _3 u. v* F# Q* C; F
if(i==4) $ G' G* H1 W5 w8 g5 R
n=n+1; 5 n7 X+ u# C5 z5 `  m9 A
if(i!=4)
4 ^; b7 q7 i# Sn=n+1;
& _  u/ D# [- a" Y4 v8 P/ oif(n==3)
. i% d8 p2 W9 f" i9 ^' I6 ?printf("zhu hao shi de shi:%c",64+i);
' c) @. y- s# e" F+ s0 k1 A; p}   A6 K6 ~3 u& \4 a: q
} 7 S4 R) I% \% E, P
============================================================== ; c* z+ {) z" T1 r0 d) r
【程序76* b" B7 \- r" G& f+ j. X
题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数
6 j  U# k# u7 g$ j. L1 q1/1+1/3+...+1/n(利用指针函数)
2 b3 |5 y3 t. ]. z) R3 v1.程序分析: / T; P- i& O. d" {- K. Y
2.程序源代码: & n% Z: f/ c* I3 M' c
main() ) {! M& z5 O& Y8 |4 f
#include "stdio.h"
" _* t+ f" i& t' l7 Vmain()
" _+ v) _" t* B{ 7 X; h6 D; |+ n0 t
float peven(),podd(),dcall(); 7 I; d+ Q4 z: _% t5 ~
float sum; / Z4 R; _& [8 Z( A: K$ `% P5 s
int n; . z; ]1 l: y! p; O; v8 b$ ?# |
while (1) . Z2 B1 [/ y$ Y# r4 Z9 ]
{
4 {( m- W% C* R! q) l- rscanf("%d",&n); ! G5 h( G& [% Z9 W$ I" d: c
if(n>1)
. F; M  h" M  y9 n& f) Ubreak; ' u; {5 i: h9 @4 G' r0 e5 r
}
7 m6 ^2 \: W+ M) }, h0 u6 Bif(n%2==0)
) B& N' w) j: {+ E& K/ E/ d: q6 z  D{ 9 @# `5 u* c( w( ?; b' a' ]! A
printf("Even=");
7 y2 v! [% ~6 h: I1 x5 lsum=dcall(peven,n); 2 q2 U: c3 ^5 D9 H. a+ M$ y7 O! \
}
# x" `- ?, o% \" c: ~$ Velse
  C/ l6 x. }4 `7 v! I4 g{ , B' \# S+ B# R
printf("Odd="); ; F7 H; S3 a1 v  ~
sum=dcall(podd,n); + j- `: a4 _8 S9 _7 W
} 7 l  B( N+ s. _/ Y+ V
printf("%f",sum); : p$ }0 O0 x8 w8 j2 C* b
}
' y+ c4 _* {* Z$ ]3 G6 {8 j1 Qfloat peven(int n) , [  h9 `2 e7 S: y9 S
{ # a& j7 v8 a( [" o0 F5 w
float s; + o- _# z8 i  ?# N% X* c/ _. }
int i;
. v1 ?, r- D8 b9 ps=1;
; n' m8 m) w" d' d' g) L* z7 z  H- K" Dfor(i=2;i<=n;i+=2)
2 n4 u( _/ R8 ^" Is+=1/(float)i;
* G) z5 t$ U* ?return(s);
, b9 _: x: F( k# Q} $ W, p  Z( R; h
float podd(n)
; j' d3 O7 C( eint n;
# ]0 R) g& j( A& }' _& u+ D{ $ U/ ~0 X7 S; x8 Y! M0 c% X
float s;
5 W8 W5 T  e: T9 ?2 Eint i; 5 t3 u" i8 H8 V
s=0;
" x% S# c) |4 x8 h; @5 g$ Tfor(i=1;i<=n;i+=2) . f5 j7 r+ P4 `
s+=1/(float)i; 0 r$ ]. b* E4 v! i
return(s);
& c2 k  U2 j5 T( @9 B; |0 \}
: h4 M: \( r$ t( \6 c4 @float dcall(fp,n)
, Z. C, y5 I  N8 Bfloat (*fp)();
+ w$ Q+ Z/ Y; g, a& kint n;
3 k' O+ D' s+ k5 f{ 0 k4 H/ h! u. W4 P
float s; ! f$ D, n/ ^  {: n
s=(*fp)(n);
& ?+ ?3 Y) N+ p+ C2 u4 @return(s); + Z/ ]/ w! k$ ~6 I4 ~3 h7 E
}
' z2 |8 t9 E" {. p) X2 _. [==============================================================
# {: U' r2 g8 Z- q
; ^5 L" A, J& x& J' `. O
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2024-9-17 04:38 , Processed in 0.070412 second(s), 32 queries , Gzip On.

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

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

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