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

 找回密碼
 注冊會員

QQ登錄

只需一步,快速開始

搜索
查看: 2517|回復: 2

C語言經典算法27-37

[復制鏈接]
1#
發表于 2017-10-7 16:23:09 | 只看該作者 |倒序瀏覽 |閱讀模式
【程序27
6 ^$ R2 S, i7 c7 A' k題目:利用遞歸函數調用方式,將所輸入的5個字符,以相反順序打印出來。
( z+ K& j5 _/ x- _2 H1.程序分析:
# U' l% k1 `& F% @2 f, d2.程序源代碼:
% m0 K, @( \+ H+ @9 G: s#include "stdio.h"; `- A2 i- s# ]8 I$ O" y* d# h8 k
main()" `' |( c! I, W# q" {
{
8 S* C5 v6 s) ^+ Aint i=5;
& e  W  L% ?: P9 [- m$ ^& Jvoid palin(int n);
4 d9 f( x* A% Z) T3 rprintf("\40:");$ t/ ]! u* q3 k' o( u1 l
palin(i);" l1 U8 z4 Y/ g  @
printf("\n");
' ?7 X- D" J" l9 O6 }3 Z}
$ b2 A3 p+ x& F) _void palin(n)% {& V9 v4 t- b6 `/ |) g9 o
int n;
* L% ?/ n& w3 ^/ E{7 E8 q  f' [. J' }
char next;
" S6 R# ], \, uif(n<=1)5 j( I! Y' c% u+ s. \+ q" k
 {( `9 Y+ s; K9 D
 next=getchar();
% A) h2 @/ }# e# f4 D printf("\n\0:");
4 z8 \9 o1 v! }: ^ putchar(next);* y! Z- z# D6 u6 R4 X( g
 }
, j% z) W' }* ]7 R- J7 nelse
0 M, X+ v- n8 m9 Z  p {
5 g  Z6 y3 T# N next=getchar();% M9 g2 ]4 N2 d2 s
 palin(n-1);
( X; O. M. f3 F) ^ putchar(next);
# Q9 ~3 v8 f, D8 m }$ s$ o3 y3 d& b' t; s& X4 I
}
% z5 C  a3 E9 s5 e$ O9 |* G==============================================================) W3 \* X7 @/ |
【程序28信盈達嵌入式企鵝號要妖氣嗚嗚吧久零就要
5 K6 i& O2 Y3 W$ U題目:有5個人坐在一起,問第五個人多少歲?他說比第4個人大2歲。問第4個人歲數,他說比第
) d, X4 ^: L: N! c1 W: w6 l5 b   3個人大2歲。問第三個人,又說比第2人大兩歲。問第2個人,說比第一個人大兩歲。最后 0 T" V1 b: P) p2 R" l, x
   問第一個人,他說是10歲。請問第五個人多大?7 m4 W* y$ _6 Q4 ?
1.程序分析:利用遞歸的方法,遞歸分為回推和遞推兩個階段。要想知道第五個人歲數,需知道  p4 z+ q( p( N  P- d
      第四人的歲數,依次類推,推到第一人(10歲),再往回推。
! ^2 j6 m/ k, ^6 z9 ]1 u2.程序源代碼:
1 |* W7 j" {3 v6 Tage(n)3 d! j9 V+ w* c# ^( ?* A
int n;
" ^2 Q' n' c4 j9 ^; g{
" g9 m1 \) `2 y* B/ {int c;% S  G$ p* I: \
if(n==1) c=10;2 V5 y* b) ^% s) k( Q) k
else c=age(n-1)+2;
, ]* A' w) S3 G9 \& Jreturn(c);
8 J# ]; T5 H( y, r: V* P3 f- e2 T}
6 i' Q- w# v- _6 M6 P  f# P2 {main()& r, W+ `2 i. A1 Y2 x5 R* O
{ printf("%d",age(5));
+ N* P0 R2 G5 e1 S) g$ X}9 z+ |( m9 d2 T0 v
==============================================================5 S6 }4 C0 l1 N6 o4 m, E& t6 L
【程序29+ T! Z' i5 o! ]" I6 J5 A; c
題目:給一個不多于5位的正整數,要求:一、求它是幾位數,二、逆序打印出各位數字。
! p* C5 T7 d- Y1. 程序分析:學會分解出每一位數,如下解釋:(這里是一種簡單的算法,師專數002班趙鑫提供) ) M, I9 O1 S3 c" o/ U0 |
2.程序源代碼:
; I7 i% |1 i- a1 M2 _main( )
' p$ i( X+ @: @$ m{% `. W: b& _- U$ P
long a,b,c,d,e,x;
' Y4 B7 p7 L! Fscanf("%ld",&x);
' ~) Y3 m8 h. u' ~$ V# f  Ra=x/10000;/*分解出萬位*/
0 x4 t" ~% C) B* Ib=x%10000/1000;/*分解出千位*/
. Z" P8 I9 v" e# W8 R6 U3 l; y8 qc=x%1000/100;/*分解出百位*/
0 {, Y' _( I! ~  V8 X7 @3 \) Bd=x%100/10;/*分解出十位*/
8 l! k! |+ H5 D+ G( Q4 [e=x%10;/*分解出個位*/
% I3 p  h3 G$ x8 aif (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);2 F4 D9 R; P/ _+ Y6 o$ L0 Q# `
else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);- f9 l. y3 W) ~9 ?8 j6 U5 _" V- K
  else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);5 D  I8 W0 Z  a
    else if (d!=0) printf("there are 2, %ld %ld\n",e,d);
' d: g( h; F  {6 r% c      else if (e!=0) printf(" there are 1,%ld\n",e);
0 q1 e6 j1 u5 o4 w6 V6 Z1 \}
( d4 |0 }, @- Y" }. u==============================================================0 ?3 i* k6 j# l# ?5 m* Y3 P
【程序30+ ^- G9 q% b5 i( H
題目:一個5位數,判斷它是不是回文數。即12321是回文數,個位與萬位相同,十位與千位相同。   
2 G: ?' R: e1 ^( R, d; P1.程序分析:同298 ?5 |0 }8 [7 W5 z; |$ C. P0 x3 ^- `
2.程序源代碼:7 S8 i& ]  H. D2 ]
main( )
; ?" p9 D& P6 u, h8 @( `{
. I6 e/ _' M% o& z7 n% Jlong ge,shi,qian,wan,x;
/ B2 q; b. {  @scanf("%ld",&x);  [  m/ Z' d* s# Q; q
wan=x/10000;
) L' l! ^3 E/ l7 t+ D1 Wqian=x%10000/1000;
" B& r$ G& C6 e" rshi=x%100/10;
' G) k5 \8 d" V1 U7 O" S) age=x%10;
: N, B2 _/ _; f2 O4 ^if (ge==wan&&shi==qian)/*個位等于萬位并且十位等于千位*/
  Z& ~( w+ E' g, s0 r* k  W* h6 @& m printf("this number is a huiwen\n");" C$ f" j3 ]' k) D8 y0 u
else$ X& n/ r0 R" D& s& U
 printf("this number is not a huiwen\n");
. _1 X# l7 b9 J}
【程序311 e6 c6 y, S! d1 N9 P, E4 B
題目:請輸入星期幾的第一個字母來判斷一下是星期幾,如果第一個字母一樣,則繼續
+ _& _5 Z' t% f4 Y; w. |   判斷第二個字母。* M# i5 K( @" ^) r. D* L% ^
1.程序分析:用情況語句比較好,如果第一個字母一樣,則判斷用情況語句或if語句判斷第二個字母。8 e! h- d- u8 {5 ^/ h
2.程序源代碼:
% H0 B% D" u) k  j: k6 m#include
6 J8 v& c% ~* [5 O. V/ l+ mvoid main()1 ]0 c: a! k3 q  ]2 M  I8 D; }+ M
{7 z  G6 Y3 r* r8 Q$ E) u3 ?
char letter;
8 g! a" b, N. [& X) Aprintf("please input the first letter of someday\n");
: T' u" |2 F9 D: q7 N0 A6 F/ T4 d' pwhile ((letter=getch())!='Y')/*當所按字母為Y時才結束*/
/ B- [$ o0 w! L' v, n' c) F: B{ switch (letter)
0 B, |9 _% a. @" V, J1 B6 C0 s{case 'S':printf("please input second letter\n");4 v1 }) L, V% b- ?8 ^* _6 z& e- N
     if((letter=getch())=='a')
/ v) w2 i* W: ^7 C5 _( ~; h      printf("saturday\n");5 i  U" B- Y1 n- K* V
     else if ((letter=getch())=='u')3 b/ {! W/ S( L* T/ C
         printf("sunday\n");
& |, M1 u; m" v: ^- L, I1 K3 V       else printf("data error\n");. {$ T( s: ?8 y1 W$ W, @8 O
     break;& u+ i, U& J' G: {" n0 U6 e
case 'F':printf("friday\n");break;
0 p2 Y5 F+ ^( U8 zcase 'M':printf("monday\n");break;3 N5 A0 n! k$ e. ~2 b* P
case 'T':printf("please input second letter\n");
$ M% t  Y1 Q0 B, Y1 |, Y     if((letter=getch())=='u')
. a3 }: P( K2 A9 \( v3 K9 s      printf("tuesday\n");0 I' Z, t6 h( \
     else if ((letter=getch())=='h'); m3 y& S( Q  ~" N0 K
         printf("thursday\n");
1 `9 e8 G# d% O       else printf("data error\n");2 Q2 H& g/ y( y4 [
     break;
9 D1 u7 `- i9 _$ Vcase 'W':printf("wednesday\n");break;! o% W: J8 D) r  E
default: printf("data error\n");' X: H0 U& u+ E% x& I/ w
  }2 x" o& @) C4 X7 y% K
 }
2 p: g: _8 x( r/ [}
+ ^: s6 x/ O- A5 C( x==============================================================
1 |: G# k6 O3 M* y$ F- j, U; w【程序32
# |* J! @. [7 q, W題目:Press any key to change color, do you want to try it. Please hurry up!
& d$ N9 Z% E% {% f1.程序分析:            
( M5 }5 e# {3 X2.程序源代碼:
/ `5 B  O. N7 B" I: l$ _5 r5 f6 _#include ; [, x. m6 p/ y( H/ ]# Z! n% C
void main(void)1 T4 d5 f. S/ m4 C
{- G& W4 M& W0 O7 h" k6 {
int color;( n$ R- Y6 e  ?
for (color = 0; color < 8; color++)( P9 T2 t. s; J$ c/ U7 Y" I; X+ q( p
 { 5 c! [( f+ ]( H$ ]
 textbackground(color);/*設置文本的背景顏色*/8 m  ]) M9 n+ t& B/ K( V3 ]/ J
 cprintf("This is color %d\r\n", color);& g& t- j; Q7 ?. \8 @% d" D" ~
 cprintf("Press any key to continue\r\n");0 K( L5 G* K% @! _# g0 a
 getch();/*輸入字符看不見*/9 G% N4 n% _+ ^* F7 i5 ^
 }
6 L4 l8 l; w& r- n) Z0 v}7 U- L3 S7 X! J$ M' s3 h9 `+ ^
==============================================================
6 `& [& e, ~! {2 s【程序33
' n6 b6 ^& s: D6 H! i( [  I題目:學習gotoxy()clrscr()函數   
' Q1 ^0 m% C: G; X7 T6 R2 o9 w1.程序分析:- ~* Z2 C& G( g# b3 q
2.程序源代碼:
! _2 |2 K% o3 Y$ Z" t4 y; ]#include " ^. F; |" a) L0 S  i1 u* E- j3 A
void main(void)4 _/ ^& S0 X1 {; [8 A/ V: }
{" g, F6 g0 [& ~5 y
clrscr();/*清屏函數*/
) A/ F  n. U* q/ D: z: @) P. X- M7 X* `textbackground(2);
* c2 h' P- L' B( [5 T9 Z5 pgotoxy(1, 5);/*定位函數*/" o$ ?8 |  K) b* [( k
cprintf("Output at row 5 column 1\n");
5 L* t) ~% b8 n; rtextbackground(3);9 h4 a4 m6 ~- i2 P
gotoxy(20, 10);) a( ^$ m& D6 G5 a7 p9 T
cprintf("Output at row 10 column 20\n");
& `: E% [- ]+ n1 f( d" e" Q# D}
0 t$ K  ?% z$ J0 ^- n4 m3 O# w==============================================================1 o& \$ `) ~: I/ A6 O5 b
【程序348 m. H" L" X) M+ o4 f/ x2 D( x" Y
題目:練習函數調用, _1 l, E8 I3 K' V3 M! P/ V+ v9 k
1. 程序分析: 6 s% V' C  d6 |& v, y- w
2.程序源代碼:
8 s8 j& D! ]8 l#include 4 Y; m" y* U) ]' o8 c
void hello_world(void)
. V% {2 S$ L) e3 @- l{
$ {" _  o: h; g' Sprintf("Hello, world!\n");" u+ s, C9 s2 P1 R& S9 Z
}
, D) R/ Y+ Q7 }* {) [0 {void three_hellos(void)/ H! P$ K* T3 d: i& q. T
{
$ e8 Y3 C& [/ a" eint counter;
- ]4 O9 m2 ?, F, [; X5 C5 yfor (counter = 1; counter <= 3; counter++)
3 ~- r" a( |/ C/ g7 qhello_world();/*調用此函數*/: ]* t& W4 X+ Q, ?% d
}
6 e8 S' ]' T. `: |. Bvoid main(void)! i+ ~: x. D# i% U
{
; q. @: i# f5 J- C: ethree_hellos();/*調用此函數*/4 m  x* I" W& T. U
}& B7 `3 H0 M- [3 K( u
==============================================================
) I9 n0 p2 q, d1 q【程序35  {5 D6 X5 J! y  i" I. C& }
題目:文本顏色設置
' v( Z9 c. P; a; E3 _; T" w% f! j1.程序分析:; w3 P, R; f9 r( L! f0 \3 N3 S
2.程序源代碼:
2 W5 p7 V3 `( s# ^. A5 a! t* A7 F1 h#include 2 k- N- r# I  I6 c
void main(void)! _* c; v' ^) T7 z2 U! I8 U
{& n4 D! R0 F" I) v, H
int color;5 \: |/ x. n1 T8 h+ E( Q: C
for (color = 1; color < 16; color++): C& F7 q; p! M% m) e
 {5 @) w+ q# Y+ P( x
 textcolor(color);/*設置文本顏色*/0 g' H4 d: r6 Y; L. L2 \
 cprintf("This is color %d\r\n", color);% a! d" q% u* }3 `2 Q, r/ ?
 }9 ~; }9 d' @# b# Q8 ?) w
textcolor(128 + 15);
& z6 m2 b* q) Qcprintf("This is blinking\r\n");# M, j) X$ _. l1 a- f* e
}
& S1 P- @  p7 Q7 ^' I2 w4 R==============================================================  Z( C* w+ t8 M+ [* Z% {
【程序36- _1 A! |, O$ ~+ x% i
題目:求100之內的素數   
, l# f+ d2 F- T* Z$ P' s4 x3 D1.程序分析:& e" C& ~5 \# Y2 o+ Z* O2 C
2.程序源代碼:
8 T  u/ t; L+ |. j#include
" z2 P9 i3 E' _#include "math.h"; |) H" j- g3 [& ^9 I: b; R7 \# [' p
#define N 1011 M% g0 l4 M; g
main(), Q# P4 s+ }" D4 G$ j/ a% m
{. Y3 X; y  }  O$ t
int i,j,line,a[N];
/ V3 T* `- r4 c# J8 }9 F- nfor(i=2;ifor(i=2;i for(j=i+1;j {* s  O( `+ ^0 b$ A/ o9 t
  if(a!=0&&a[j]!=0)
0 L' }# \/ x' T" z! m, F2 V" P0 V  if(a[j]%a==0)
0 L$ c/ o# U3 d2 Q* Z% I* F  a[j]=0;}1 u. S7 M2 p/ D- x
printf("\n");
) b9 D0 B( t4 D/ Yfor(i=2,line=0;i{) F  d; l; X; u  v- g# b3 k
 if(a!=0)
. l9 P; O4 N- D0 i" j' q! l+ v1 | {printf("%5d",a);" w8 ]; [- _5 D$ g; J+ D
 line++;}
; m6 n1 a) B( o5 v" W, Y if(line==10)7 q9 Q2 |8 k: D& G
 {printf("\n");8 J) e. ^- U% [; C7 c# B
line=0;}
3 t! S% U0 ^1 Y5 E: i5 w! c}6 F: C: W5 M9 G- f
}
/ K: G% A9 `! k$ F6 ]8 E' L/ q==============================================================/ U6 A6 e$ Y' J4 X% x) Z
【程序37
3 j. o0 P/ s# i" \* B5 J) U) X題目:對10個數進行排序, V9 K5 z" u3 |: J$ D% o
1.程序分析:可以利用選擇法,即從后9個比較過程中,選擇一個最小的與第一個元素交換,2 x2 F, E. Y1 z& g+ V7 K
      下次類推,即用第二個元素與后8個進行比較,并進行交換。        . \' ^+ |* a$ \: ?7 u7 u
2.程序源代碼:3 z, J$ A/ @. f, a
#define N 10
! _% |# t# k7 u2 M. \% Mmain()1 a* ?; G+ U0 J
{int i,j,min,tem,a[N];
8 _8 t! Y$ x  M; E; G0 g/*input data*/
: b) T" |, X1 S* Y; o- qprintf("please input ten num:\n");
$ y3 J2 P( [; r' h8 v, V6 Z" ^3 }for(i=0;i{
/ V1 }2 ~# S3 o& Dprintf("a[%d]=",i);* W; _) j' r  Z: ?' E/ h
scanf("%d",&a);}6 P2 B. G6 `8 l; b' C% ]( d/ x
printf("\n");
+ i2 g+ y* e+ V! z* Q0 c4 yfor(i=0;iprintf("%5d",a);
3 X8 x+ c. ?* S3 Pprintf("\n");( v/ d' Q+ C% [4 N/ b4 y1 _
/*sort ten num*/4 E; j3 Y3 O0 m, g+ v
for(i=0;i{min=i;; |% l6 g. O6 f* c
for(j=i+1;jif(a[min]>a[j]) min=j;4 x5 i. o+ x9 @0 A
tem=a;
/ Z( s- H/ v/ G5 Q7 t( m2 Aa=a[min];
' R9 q# M6 }; ?# W# g3 Y  Ha[min]=tem;
' e: U$ x+ H6 m% ^}+ P8 \5 F7 W) y. w
/*output data*/4 y5 @/ }) F# }1 k  j' ]
printf("After sorted \n");7 j+ h) _. A& l/ w0 Q' z+ L: Q
for(i=0;iprintf("%5d",a);
5 u9 u$ @- U, B' O8 x; m}& q2 }3 U8 d, @+ K) D1 N( y9 s
==============================================================
0 @1 j: c0 J/ m  W

8 M  H; ]5 z6 j" v
回復

使用道具 舉報

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 17:12 , Processed in 0.065617 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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