久久久国产一区二区_国产精品av电影_日韩精品中文字幕一区二区三区_精品一区二区三区免费毛片爱

 找回密碼
 注冊會員

QQ登錄

只需一步,快速開始

搜索
查看: 2515|回復: 2

C語言經典算法27-37

[復制鏈接]
1#
發表于 2017-10-7 16:23:09 | 只看該作者 |倒序瀏覽 |閱讀模式
【程序27
/ ^* ~: i" k+ w0 M2 t& `8 ]# Z題目:利用遞歸函數調用方式,將所輸入的5個字符,以相反順序打印出來。
+ v( m3 ~" n+ C( R9 S1.程序分析:
- e+ d: P/ r  ?$ B6 h# a3 y- s$ B2.程序源代碼:
. `* x8 ]& A, d) V7 I#include "stdio.h"
/ m9 ]' n8 o. Dmain()
/ ]/ }; ^6 }) Q  ?1 [8 X! F{
7 y* B) P0 E1 O9 v  |int i=5;
$ f( M% m6 X! k- |6 ?. Ivoid palin(int n);
" B" ^; v: r) j- H  p! s7 dprintf("\40:");( q9 w% G7 t4 L% B: S7 d1 M
palin(i);
' P/ z" y! e+ n: m; W' jprintf("\n");, {: I. K* Y! L5 s
}
/ p4 H2 \; k, z% \void palin(n)! G5 Y4 c5 f  v0 u3 d  p! j
int n;* k- i$ \0 i% ~& _
{
% m7 K; b' D! W; M' B9 h: l! fchar next;7 r! W) h7 F- d8 P) D! y
if(n<=1)
6 D) i0 G6 a# j. J( z1 S2 \ {
' c' m# E# z( R7 W- R0 X6 K  Z next=getchar();- x9 y* W3 B) Q7 c0 @; z
 printf("\n\0:");
; M6 @* p. o8 \: B+ q putchar(next);; h- m; H5 n# A
 }
0 x8 a* m3 W- Helse! f, F( T1 w* C, Y! w
 {
. b- O7 K5 Q8 N, m& p next=getchar();4 m" n3 ]' f* \" w* h. A" A1 R
 palin(n-1);
0 Z5 x5 W# d8 p/ ]: b: b putchar(next);
5 h' O# w) u& N- X$ d# ~4 ~ }' ~8 @& _3 I- T# P
}
, h1 V' r8 ~& J' I! r/ R1 H) m# x7 B==============================================================) m, C1 [$ U! a
【程序28信盈達嵌入式企鵝號要妖氣嗚嗚吧久零就要
0 I+ w8 m9 {/ o) d7 V題目:有5個人坐在一起,問第五個人多少歲?他說比第4個人大2歲。問第4個人歲數,他說比第, O, A  w* B5 L4 k7 M1 ]$ G" u' _
   3個人大2歲。問第三個人,又說比第2人大兩歲。問第2個人,說比第一個人大兩歲。最后 : z' O+ Z6 f, V8 |0 @2 J
   問第一個人,他說是10歲。請問第五個人多大?" N3 ]$ D4 F/ a7 U: d! M; L% e
1.程序分析:利用遞歸的方法,遞歸分為回推和遞推兩個階段。要想知道第五個人歲數,需知道/ ?* w+ A+ Y2 [4 b6 b/ u
      第四人的歲數,依次類推,推到第一人(10歲),再往回推。% {: M- p5 t* u9 ^6 g( V
2.程序源代碼:+ I) T+ I: g+ V2 u9 U+ f* Q+ l
age(n): l3 ~8 K/ I/ e
int n;7 h, f( H/ g+ E6 J+ y7 T! W
{
% i3 g* }9 Z: H/ m  l4 b* z6 {6 U; r: aint c;, ^& _, u* M. A. g4 Q1 `
if(n==1) c=10;
& b% O" ^, [( ?else c=age(n-1)+2;
% d5 C' f) K$ l8 |& Areturn(c);) G2 {) s+ \1 t2 g0 |3 G- y! Q
}
5 P+ a% \  H! M; b2 f8 w9 ymain()$ g& C. k3 B& o$ r0 b. X8 @
{ printf("%d",age(5));
6 U& i% k8 T, ^# c0 Q- |0 p3 E2 B. F}
# j0 F, D. X" _6 Z==============================================================
- i3 a" \  G1 |【程序29
) A( C; |! w6 I# I" n" Z題目:給一個不多于5位的正整數,要求:一、求它是幾位數,二、逆序打印出各位數字。
" t* k; v; p* c# O% p0 ^. E' r1. 程序分析:學會分解出每一位數,如下解釋:(這里是一種簡單的算法,師專數002班趙鑫提供) ' O' c3 U& w# Z  J/ I
2.程序源代碼:
1 F/ X% l4 M% T0 }. b% ]1 M0 f+ hmain( )
: {: d6 }, Q+ {9 @7 \5 l{, H. ^4 R( Y7 `' x/ x- u, |8 d$ G0 R
long a,b,c,d,e,x;
' e3 N$ P5 ]/ Oscanf("%ld",&x);
/ K! S8 T7 z( d. j7 I; M7 ca=x/10000;/*分解出萬位*/
8 r  a1 M* E$ Qb=x%10000/1000;/*分解出千位*/4 L0 F" y6 L  R) Y' L
c=x%1000/100;/*分解出百位*/8 @+ U5 M) r0 V( [; L- c1 f( ?4 y
d=x%100/10;/*分解出十位*/$ O8 t! |* M7 ?/ i9 p: p1 @
e=x%10;/*分解出個位*/: G! p; A* }/ O8 e
if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);
7 y0 j2 |( J, T0 helse if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);
/ _; c* _% }1 V9 z  else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);; }6 o7 r+ I5 A2 H- G
    else if (d!=0) printf("there are 2, %ld %ld\n",e,d);
# V- }3 j- P1 _! c      else if (e!=0) printf(" there are 1,%ld\n",e);5 Q; R" x+ ]! a9 X" `$ S/ u! W, E
}
3 p  h" e/ k5 k3 q* w8 X# G3 Q==============================================================; T0 c( \" o# S" l; @! x  i2 ?# j
【程序30
" d' @0 h3 \$ ?1 ^; L3 |題目:一個5位數,判斷它是不是回文數。即12321是回文數,個位與萬位相同,十位與千位相同。   9 a" D- x, A/ H5 p3 v; T
1.程序分析:同293 `: r) p5 z6 e* u8 t
2.程序源代碼:
/ a/ c) O; `) I% y  ymain( )
$ l0 |/ Q, n; m: d{
, V4 a* c- l( V5 q. A+ ulong ge,shi,qian,wan,x;" l/ S2 q# G# s2 |% Z5 o
scanf("%ld",&x);5 K, n/ {; F7 }+ Y- Z
wan=x/10000;: X% }' g  I6 Q% @- @/ x
qian=x%10000/1000;' W) i- O  A9 D5 V5 M: i
shi=x%100/10;
- F# K1 [; J9 n( P$ ^* xge=x%10;
9 j; O1 }8 Q: L) o, c+ R3 L, V' Yif (ge==wan&&shi==qian)/*個位等于萬位并且十位等于千位*/
4 T; u/ R! J/ E printf("this number is a huiwen\n");
: S. S) L& t( L7 uelse
( z) P( L) X2 Y6 t printf("this number is not a huiwen\n");% o) v1 F& Y( n8 I# [
}
【程序31$ Z( w% I. c# L- S8 z
題目:請輸入星期幾的第一個字母來判斷一下是星期幾,如果第一個字母一樣,則繼續6 K! {% e$ ]; E
   判斷第二個字母。. J' N% i- s1 `7 k# \
1.程序分析:用情況語句比較好,如果第一個字母一樣,則判斷用情況語句或if語句判斷第二個字母。
0 G8 Y* w% R) v. l; G2.程序源代碼:5 K0 i  ~( o; g+ J. E% \8 `
#include ; k6 J$ A5 ?' o) `
void main()1 i/ }1 |( J' \6 J  K* N1 D& A. L
{+ J3 ^" m+ s& V7 h, c5 o! y
char letter;4 ]8 x) g+ k8 K- Z* R6 E! K* ^
printf("please input the first letter of someday\n");
- O' q9 S. p% r! q( s$ R1 ^while ((letter=getch())!='Y')/*當所按字母為Y時才結束*/
$ n& L9 p. ]; r2 {; a  x& U{ switch (letter)- y1 v& F, G& _% `7 \# t
{case 'S':printf("please input second letter\n");4 o' m& a) u5 W5 t6 A1 ]3 G
     if((letter=getch())=='a')1 i0 n, s- m! y( t
      printf("saturday\n");
5 H  M' B! Y0 a: ?8 ]     else if ((letter=getch())=='u')
0 {8 a, c& ]$ \3 v& x* A7 q6 B; E         printf("sunday\n");
, \8 K- _$ {: P6 X, o0 u/ J* u- E       else printf("data error\n");
% l; B( Q4 y- `  ]" L- d' h     break;4 c& h- _) W" ^2 L9 E) o
case 'F':printf("friday\n");break;# r* f1 m2 f/ x; l! e& h
case 'M':printf("monday\n");break;& ?0 ]  c3 V* d1 w! r, H
case 'T':printf("please input second letter\n");) r4 P0 B; z* X3 \9 X; ~
     if((letter=getch())=='u')
) x( u4 p) [, t& _$ [      printf("tuesday\n");4 X/ |2 ^6 q/ G6 ]  t* q# Z
     else if ((letter=getch())=='h')2 p1 N! {$ O6 ~
         printf("thursday\n");
* \' V9 y0 n, D& M" E5 a2 G       else printf("data error\n");
$ H, m  y1 d, c     break;* k& j; p% y) }! H* ^, P% S
case 'W':printf("wednesday\n");break;8 Q6 F, D) n: N' p
default: printf("data error\n");
" n: M! l# h! ]( `! |7 o  }6 r+ [6 z# n; w# d2 i* c' N
 }# f2 W) x6 |: M4 m( G
}
: ], m9 m9 M, c9 X9 K4 ~==============================================================( p3 `" j! Y+ [% {4 z6 x# e3 `
【程序32
; c6 m- [4 d0 m9 L$ E4 Q5 t* q題目:Press any key to change color, do you want to try it. Please hurry up!
! v1 G: @+ f- |/ _1.程序分析:            
8 Z/ @5 Z# m* `/ e$ Y% \2.程序源代碼:
9 s# }% K" k7 d# m#include
% C5 F: N! q4 B" i* {7 s4 O4 n- y3 |void main(void)
! o; _0 ]2 b0 O2 I- f- J{7 o  R& h5 W4 w% R. Z
int color;
8 o4 \* n" P9 n  C+ Afor (color = 0; color < 8; color++)9 P+ b( S# q! k% n/ e; _
 { + E8 T: R  T" \# J" y4 a: x* [
 textbackground(color);/*設置文本的背景顏色*/6 t) c9 b7 f2 f! P$ \# \
 cprintf("This is color %d\r\n", color);* I% d9 H3 v! T' r! t/ u' m
 cprintf("Press any key to continue\r\n");& a+ ^" {% ^6 ]& X1 w3 w/ Z
 getch();/*輸入字符看不見*/
' I& ~* Y9 d, Y- P- z }
4 p$ _0 I6 m/ _9 t, [# a}
7 j) v; y4 C8 y- r$ u1 M1 j; v==============================================================
- S! O8 T3 b0 ?【程序332 D0 ~' |. z5 A! d1 L6 @6 c
題目:學習gotoxy()clrscr()函數   / f6 e% U! m; N- @7 g4 \1 \
1.程序分析:# J; A, A: q7 v# @- a
2.程序源代碼:
+ E( p& V" i2 p#include % ?3 I+ Q. v5 ~+ v# K' J
void main(void)# m$ T; l* o$ a3 d% ]
{
6 ^9 z* F2 s  E2 U; d$ |! |8 jclrscr();/*清屏函數*/3 l6 c6 A9 \. h* `9 \' f- y
textbackground(2);/ H6 f7 h, O# H: a/ u, M: C
gotoxy(1, 5);/*定位函數*/4 B: [  L6 Y5 F4 j
cprintf("Output at row 5 column 1\n");$ V, ?/ E7 B( y  |3 C
textbackground(3);' i4 t' t3 d9 g/ X
gotoxy(20, 10);
0 m9 N1 R/ D$ u" y* H9 g& B7 Ycprintf("Output at row 10 column 20\n");
) z5 I' R1 N( f% I' ?% |}  j5 m1 y0 {" Y) L% Z& e0 U
==============================================================- K2 N; N+ s. @# v4 E4 i
【程序34
3 u8 W9 z( o  g6 z7 |* G9 z題目:練習函數調用
) _6 v) b6 z& K' p) W/ `$ P1. 程序分析: 1 H/ W- Z$ X- y& A: Q2 b
2.程序源代碼:
! N, C* u* E' E' L- M) Q#include 7 \) v0 U0 B& s, {$ [  s$ ]
void hello_world(void): U  Z7 b* g; U( w
{+ Y* W' V& ^& T' o' ]( t3 J
printf("Hello, world!\n");
% m" e% f8 [: y& g}4 t! g. F# u* Y5 W2 e, O. G
void three_hellos(void)
4 ]1 a+ t* o# B8 w- ^3 \{0 M5 o. a( R* G4 S6 ?- f
int counter;2 @4 Y" K. d( o& v6 y
for (counter = 1; counter <= 3; counter++)
/ W$ @7 J+ Z4 c! x/ V+ `hello_world();/*調用此函數*/5 w0 d( f& G0 `& g
}
8 c0 H# `8 B2 l, J  Q' |void main(void)
& s+ z# j! m$ j+ g% I{
9 a7 O3 B, o! g: Gthree_hellos();/*調用此函數*/
+ c" E3 k4 m7 E  _. _}2 _7 n# M6 S2 j5 H# h
==============================================================
# j) g0 p" ]  R6 Y【程序35% \. q- b4 y  p
題目:文本顏色設置
! ~/ t3 J" k* y; Y1.程序分析:0 I! X( p% U( V8 c$ v
2.程序源代碼:
1 d$ C! R0 j, z#include   ^1 a& M/ z2 i# j
void main(void)
% T& k! X0 `* J4 R7 |: Y! F{
1 p* k' q# a1 c/ j9 }# G' U1 B$ G9 pint color;
7 P9 U4 `+ `8 A3 f+ u" i8 t' ofor (color = 1; color < 16; color++)
4 x9 ?+ p) B% x/ z. v {# d' w1 E# {& E& W
 textcolor(color);/*設置文本顏色*/
: |3 L( S+ Z' k* _' U( z4 i cprintf("This is color %d\r\n", color);/ O* t( F- i4 V$ X& x! @) a3 U% a
 }$ z( M) n0 Y9 e
textcolor(128 + 15);* M# D$ Z2 a) i1 W. b( i
cprintf("This is blinking\r\n");
* ]4 ~8 N( s' G; p}) D" c  ]) U- O9 z6 K1 }+ \' R
==============================================================! I) ^- ~. E- [) M) O
【程序36
3 O% S4 f4 F) J! a題目:求100之內的素數   ( P5 s0 D1 O+ @/ B  H$ i* {
1.程序分析:
# i/ q4 J$ {  W. c! V2.程序源代碼:
8 W. Z/ S. x5 M' B: s% A  @# d#include - l( n7 l% @5 `# B/ W. b, U
#include "math.h"
( r" }! B  I' D% N#define N 101
  c3 b; X& G( z# P# Ymain()- o, x1 F3 s# q1 ]" V! t! ~9 l
{
% r( z) Z3 M% z- |0 A6 dint i,j,line,a[N];
# q* H" @7 k/ E; V- h+ Q7 Ifor(i=2;ifor(i=2;i for(j=i+1;j {- x' j( B8 ]  h: B( Q
  if(a!=0&&a[j]!=0)
, {4 A: j+ s4 l) v9 Y% z4 u5 G9 b( z  if(a[j]%a==0)
% T7 L5 N, O! h' T; g6 i' O  a[j]=0;}
) ~/ k, Z8 c# F, E9 @: S! zprintf("\n");8 C  [/ b% y, @$ ~$ C
for(i=2,line=0;i{
9 X  d# q8 ^5 X: p7 {* f if(a!=0)! }" m* H4 C8 T
 {printf("%5d",a);
3 y9 k1 C7 w6 [% ^/ d8 b3 t: W line++;}% {+ S6 G6 j0 h( U1 {
 if(line==10)
  a/ z6 t. t2 @6 q/ r2 [& | {printf("\n");
' }6 s9 @+ [6 b2 Z$ R: u" b. jline=0;}
: F% Z/ O. }! K  X' b4 e}$ w9 u$ [5 B- ~4 {- p, ^7 I
}. |5 A& q( [3 C
==============================================================
2 Z/ d7 T# H  T6 \* V5 I( S【程序373 |$ \0 N0 j% X* `% p
題目:對10個數進行排序9 Z3 V& {7 P% u9 ]+ u) d5 R
1.程序分析:可以利用選擇法,即從后9個比較過程中,選擇一個最小的與第一個元素交換,) G6 F7 U1 I# C- w) ~; j2 r
      下次類推,即用第二個元素與后8個進行比較,并進行交換。        ) ]- \' W) _- X( ]1 f/ L
2.程序源代碼:
7 b/ e" i- `2 l/ q4 \#define N 10) [  v; `) P# d
main(); m& @7 h5 R- Y  T
{int i,j,min,tem,a[N];
$ P" Q% C( |, c) z/ |- `  \! N/*input data*/+ E, M  p# V: w9 v
printf("please input ten num:\n");
) D) k$ u" \4 B/ b2 bfor(i=0;i{
3 t5 L! a" G0 Pprintf("a[%d]=",i);/ S; }$ X1 u( s, v3 Z4 T
scanf("%d",&a);}
5 I% O: L# e; i5 n: c. D2 I# @6 Hprintf("\n");" ^! H9 K6 u; ~) q  A4 C
for(i=0;iprintf("%5d",a);
8 K$ v5 y6 {* C% Q; L* W( F# Iprintf("\n");
2 Z; T. {& Y4 L3 {( E/*sort ten num*/
, q0 h! X( \; F; m4 @6 Jfor(i=0;i{min=i;, |5 J% B+ w8 q# ^! c; U
for(j=i+1;jif(a[min]>a[j]) min=j;6 l+ ~& e+ q8 ?# A" w
tem=a;4 k9 P6 V" c  u; K! x  ?' G' |
a=a[min];
  v; @# y/ y+ i* Q% |" F  H) Z* x. ma[min]=tem;
, z1 }% ], J- Y8 X" m) a; M# m}3 A9 }5 ?* p! q( U$ P# X% f- K
/*output data*/! ^' l* q9 \8 v
printf("After sorted \n");
5 ~) W4 n  g0 s& Kfor(i=0;iprintf("%5d",a);* ]5 J2 G/ ]1 o
}
: q% t: I5 I, O1 w7 O) c4 I+ t==============================================================% \+ d& w; |* V6 D0 U
- I8 ?' \( g6 P9 e3 n  }
回復

使用道具 舉報

2#
發表于 2017-10-7 16:29:57 | 只看該作者
十五字十五字十五字十五字十五字
3#
發表于 2017-10-8 11:09:22 | 只看該作者
C==
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 注冊會員

本版積分規則

Archiver|手機版|小黑屋|機械社區 ( 京ICP備10217105號-1,京ICP證050210號,浙公網安備33038202004372號 )

GMT+8, 2025-7-23 00:11 , Processed in 0.088663 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回復 返回頂部 返回列表