国产精品乱码一区-性开放网站-少妇又紧又爽视频-西西大胆午夜人体视频-国产极品一区-欧美成人tv-四虎av在线-国产无遮挡无码视频免费软件-中文字幕亚洲乱码熟女一区二区-日产精品一区二区三区在线观看-亚洲国产亚综合在线区-五月婷婷综合色-亚洲日本视频在线观看-97精品人人妻人人-久久久久久一区二区三区四区别墅-www.免费av-波多野结衣绝顶大高潮-日本在线a一区视频高清视频-强美女免费网站在线视频-亚洲永久免费

機械社區

標題: C語言經典算法27-37 [打印本頁]

作者: tainqing    時間: 2017-10-7 16:23
標題: C語言經典算法27-37
【程序27# e% K/ e1 b! [, R9 q
題目:利用遞歸函數調用方式,將所輸入的5個字符,以相反順序打印出來。: m' Q/ ^5 N2 n2 W" ^$ N
1.程序分析:
1 C& D) H1 d( K( v  s, }2.程序源代碼:
9 d* Q: [0 S$ Y% k9 Z#include "stdio.h"
. ~  k* u; m0 O; ^3 O/ a1 gmain()
) N! v; i4 y, l& w; V{
3 g2 D/ e; b/ V! G7 S! H# gint i=5;" l+ _9 C- Q* d! \  I6 ]
void palin(int n);
& l( Q) w/ z! W/ {  Pprintf("\40:");
9 h; Y1 ~; C0 u* Xpalin(i);
4 X% M7 z4 z; h. Y7 q0 H# Fprintf("\n");1 f' |# ~# ~  J
}
7 ]0 b2 A- i8 Wvoid palin(n)8 j* l( d% P3 [" i, q7 w
int n;* V  {: i+ }( m& H# K' k% z5 {& W
{( n0 J. q  c( [$ N% Q
char next;
/ ?+ e" j1 D3 o1 Z3 v6 Qif(n<=1)
; t) l7 i: Y: m {6 C: \7 W' W( A. P  z0 @- \
 next=getchar();' X- g; W* K7 V' k& I* u
 printf("\n\0:");
! v# c" [# p, j, v+ T putchar(next);
8 R; J7 r$ ^) N' T }
+ U- p- m2 F* u2 r2 s% ^9 Helse& S6 y) U6 l5 l1 z) |
 {
, }- s1 I) z7 B next=getchar();& i. I2 ^& W+ m7 T+ g0 p7 @
 palin(n-1);6 R+ R4 {2 i4 h2 X
 putchar(next);
6 F$ R0 U# ^4 j  h& K }  n' d: W; t1 h; W4 J1 I0 A1 b/ Z& [
}
) d; o+ d7 O8 B1 b==============================================================
3 `+ [2 y9 q' `! A. U【程序28信盈達嵌入式企鵝號要妖氣嗚嗚吧久零就要
: a7 H. U# o' ~9 q% h題目:有5個人坐在一起,問第五個人多少歲?他說比第4個人大2歲。問第4個人歲數,他說比第
: f9 H2 u3 b: ?' V0 R3 M+ f   3個人大2歲。問第三個人,又說比第2人大兩歲。問第2個人,說比第一個人大兩歲。最后
% J! l! u) b( j2 I0 D   問第一個人,他說是10歲。請問第五個人多大?! x  f/ v. Q2 u$ J$ S0 \. C
1.程序分析:利用遞歸的方法,遞歸分為回推和遞推兩個階段。要想知道第五個人歲數,需知道
( I1 V/ `& n' S7 T6 I8 O% u: W; W      第四人的歲數,依次類推,推到第一人(10歲),再往回推。
6 @% q4 i2 Z9 j8 o( v& I5 Z2.程序源代碼:& {7 r, `4 V5 a5 C2 v
age(n)
& ^3 R/ e" t5 }+ Gint n;8 k9 f3 L  G+ c# E
{# f, j: ?5 t( e; u2 f
int c;" e- o8 {! R! R  i6 W( B
if(n==1) c=10;" o% \/ }4 O( Z6 w6 }- {
else c=age(n-1)+2;, x) Z+ @- }- w& p" X- P
return(c);
7 v. g; J7 o5 h+ E' Y5 @}  ?5 J, ?' z5 C
main()' M7 @, }, O5 ^  ^8 Z3 a
{ printf("%d",age(5));4 c( p* b/ A. u% i/ M* k* B& v7 i
}
5 K) n# X+ U* E& X7 K6 o==============================================================$ }2 Z4 h5 Q: Q# x5 \. n  _, g/ C0 N
【程序29% M7 b3 A4 J! }$ \
題目:給一個不多于5位的正整數,要求:一、求它是幾位數,二、逆序打印出各位數字。
4 c3 X& |  s/ j, D/ ?) D& e1. 程序分析:學會分解出每一位數,如下解釋:(這里是一種簡單的算法,師專數002班趙鑫提供)
' ~. Y! r  o- {6 y2.程序源代碼:1 C6 [$ w5 \; X+ u  J( a
main( )* @* v: q: y) ^; R
{6 r/ G% X5 \( [) v1 D+ Q
long a,b,c,d,e,x;
/ g2 j. h' [; n/ F3 W2 ?/ _scanf("%ld",&x);
6 o/ y/ v/ m9 P$ Z7 J2 Q2 n2 ea=x/10000;/*分解出萬位*/1 ~3 o; a9 k1 |: t) ^+ F  C
b=x%10000/1000;/*分解出千位*/
# V$ X+ p' b9 h/ N8 s) kc=x%1000/100;/*分解出百位*/
2 G6 o, v( t: L7 B7 f1 Dd=x%100/10;/*分解出十位*/
! \1 Z0 ~/ |  W3 \e=x%10;/*分解出個位*/" n! Q3 [% n& T" k  Q9 t
if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);
5 `6 H9 b5 r* ~else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);! t7 A6 ^9 p; `* \2 g+ I/ A3 s
  else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);2 \0 c- K( i( ]; `) n& W9 m
    else if (d!=0) printf("there are 2, %ld %ld\n",e,d);
: L6 k; E, [/ S6 S, m      else if (e!=0) printf(" there are 1,%ld\n",e);  b8 V% B( U" K) o2 o
}
2 j. l+ ~% E- T3 [2 k+ U==============================================================
# S7 @5 H4 _4 G1 U【程序30
8 M% s9 i% l0 ?3 R  G9 P* O0 B題目:一個5位數,判斷它是不是回文數。即12321是回文數,個位與萬位相同,十位與千位相同。   
, B2 @1 T+ s4 y) l, A6 r1.程序分析:同29& f3 H, [- S! Z1 H: p5 T$ q3 U
2.程序源代碼:
7 V% S8 Q$ C- Y/ Z8 dmain( )
9 X5 v( Y5 k* U7 ]# L3 C6 b) Q{
2 P& y9 g2 M% x2 H* j8 c7 F8 \long ge,shi,qian,wan,x;
3 h* T. ?) I5 G) Kscanf("%ld",&x);1 v2 p5 n" s0 {  d
wan=x/10000;4 c- D. d3 U% x5 R
qian=x%10000/1000;- j0 Y# \6 \9 `: [8 D# p
shi=x%100/10;
( B; j0 y  ?" {& |! l$ _ge=x%10;
& n) U5 }( k# \, V2 u% {if (ge==wan&&shi==qian)/*個位等于萬位并且十位等于千位*/
6 N% w% o2 ]# w1 | printf("this number is a huiwen\n");
3 w3 Q- u: h8 aelse, Y. i8 m5 }1 x% D5 z1 D; a* y) w
 printf("this number is not a huiwen\n");  A( Y3 k2 l7 v( u; g5 z! h+ t
}
【程序31
" c2 s8 ?& k) P2 M題目:請輸入星期幾的第一個字母來判斷一下是星期幾,如果第一個字母一樣,則繼續
3 ^  i0 B2 R4 W5 H   判斷第二個字母。/ P, ]# g) m# M! ~8 q! Z; n
1.程序分析:用情況語句比較好,如果第一個字母一樣,則判斷用情況語句或if語句判斷第二個字母。
+ l5 h  v  s/ ?- q2.程序源代碼:
$ x) q3 h4 @% x6 Q4 W. |* w#include . ?, Z0 q1 v. H7 D+ ]
void main()
$ m) G# A' K9 x% N8 A' U& }1 n& X7 s{
& ^& v, r8 O: h: g2 j& t0 u" jchar letter;- G- h6 E' a% u  q+ V( s  I" N
printf("please input the first letter of someday\n");/ @" u$ P9 R4 b, H( f
while ((letter=getch())!='Y')/*當所按字母為Y時才結束*/3 p1 t6 v1 s1 h$ `6 j0 {8 I( ]
{ switch (letter)
5 j0 N, j. |! B* X{case 'S':printf("please input second letter\n");' W8 k4 C4 E& m9 s
     if((letter=getch())=='a')
. f; u! J$ j( s( Y2 E7 j      printf("saturday\n");
4 v9 U0 u  i( \! R5 e3 l3 g5 {2 l     else if ((letter=getch())=='u')2 B' {* a9 @$ X: j/ V3 v
         printf("sunday\n");
9 }- `% ?9 g4 {* Z9 \6 U       else printf("data error\n");& v0 l: ?7 _+ T
     break;
5 h+ s9 Z# M+ ~case 'F':printf("friday\n");break;# X! l" A1 x+ d. x' }; i
case 'M':printf("monday\n");break;
0 |9 S4 a- P: r* }# B3 n; acase 'T':printf("please input second letter\n");
/ o8 @/ {6 w0 Z: ~8 l     if((letter=getch())=='u')
* J- I3 v6 _9 i, n5 m      printf("tuesday\n");2 v1 |) `/ O2 P8 X
     else if ((letter=getch())=='h')' G2 @. F% k# t/ d
         printf("thursday\n");+ O( K9 o9 Z2 {
       else printf("data error\n");+ u' \/ U9 Z( c' Z- |
     break;1 n, g! b! u" [: r& c. N/ ]( E
case 'W':printf("wednesday\n");break;
- D0 q. l9 J& F# @+ E: V3 `default: printf("data error\n");, z/ r! |) b& e' _2 h+ y) B" Z; ^
  }
! [. R8 J% L- L. O" a* G }
1 W8 l$ Q6 u2 x/ s4 \}; u# `! ^* M: e8 O9 K, k
==============================================================
2 @6 r  f$ k3 t; _【程序32
! N' e6 w( a* U7 Q5 C! ^題目:Press any key to change color, do you want to try it. Please hurry up!
" `! a7 F2 o$ o1 `1.程序分析:            # C, J+ {1 W; o5 k/ G
2.程序源代碼:  i1 k4 Q. ^8 x: s2 z! l" M
#include
( r+ y. e8 M; A' t" l% ^void main(void)4 J  P9 H; D& C* r" |
{
& T# ?: V, s. q: k, t, N8 yint color;4 g3 z8 V! u& Z6 f& N! }, Z' w: P$ G
for (color = 0; color < 8; color++)2 y# c  i! Z( q  j" c& y: ]6 `/ h9 Z( L
 {
% h: k& G/ d% [3 v* X( i, ^ textbackground(color);/*設置文本的背景顏色*/- U4 V) V) G( A" n, M5 Y, _. |$ p
 cprintf("This is color %d\r\n", color);' L( Z- ^7 d# U8 p6 H  e& A
 cprintf("Press any key to continue\r\n");
/ H7 m7 W( r1 u4 g6 P getch();/*輸入字符看不見*/
4 y' F; H/ p! [ }
- E4 j$ l; k6 Y! c' S: b9 l}
3 t+ L1 _) J* S==============================================================1 t7 l+ D# z. m% I4 r, [
【程序33  }5 G# s7 w8 s3 O- E: c2 m  N
題目:學習gotoxy()clrscr()函數   
( U$ L) {; s# R' _; E& C5 m1.程序分析:
" p- n# l8 V3 [" |7 }& e2.程序源代碼:" I9 S. U& w, S$ q
#include
$ b2 t# U. ^' ?2 ?9 x" uvoid main(void)
; H9 F% W# {$ E& C; ^: a{" U) X" n! H4 u" h
clrscr();/*清屏函數*/
: K& o" V# u1 h% i) N& {textbackground(2);! W6 k% A* z8 i& ]7 k
gotoxy(1, 5);/*定位函數*/
9 x# ?- ?$ a) I4 icprintf("Output at row 5 column 1\n");
2 e* Y! Q, w/ N+ T' jtextbackground(3);% `5 \% h" p7 H2 B, }7 L7 J( n$ U
gotoxy(20, 10);! z  O/ [  T1 m/ F
cprintf("Output at row 10 column 20\n");) s. t: Q* ], I/ `4 q
}
! |- @- l, F/ k7 p) g==============================================================
/ Q+ b" p4 \/ y' s4 V" L【程序34
" H. v4 e3 C2 `  [" U$ C3 ]; ~' N9 c題目:練習函數調用2 e1 p) h$ U1 Y& g: T
1. 程序分析:
$ l1 |( G: V! P4 C2.程序源代碼:
4 F3 _8 M" Y! u( `! f, ~) l  g" u#include
, n1 Q# A% P  O. k+ f7 `1 h, `void hello_world(void)
* K2 W1 `1 }! G5 e/ ^- f{
0 s! v- a5 q2 T4 Z! l1 Nprintf("Hello, world!\n");$ R2 c# h7 Z6 ]/ o- o
}9 B7 l/ B7 d& C; X& s
void three_hellos(void)
( |) K8 l2 Z1 m8 y{
7 V( ~4 X; y8 h7 I- mint counter;
! {# T" S) |- }( E+ |$ J" Gfor (counter = 1; counter <= 3; counter++)
) l( M" Q& {) I8 R! Khello_world();/*調用此函數*/
! [/ }0 Y4 ]3 O+ m! N4 V# j) t3 A, l}
; B% X) M7 @4 V% Tvoid main(void)
) U/ m, e" L3 A; w3 _, m{- m5 A5 |( F: T* k* E% Z# c- B7 a
three_hellos();/*調用此函數*/
$ }0 s, X4 G: ^: [& x+ u}3 E( t0 J& Z: R
==============================================================
. S1 z5 q& v2 U, X% {3 T【程序35
9 Q9 D" g1 L- o題目:文本顏色設置. o" I: F5 c; f: S
1.程序分析:
5 s0 F% m2 f3 ?2.程序源代碼:
$ G& b  D( L$ {% F#include
6 e$ q) m+ O, a; I1 d& q7 Q, xvoid main(void)
* z" D5 P  Q& f6 R" P$ b{) K1 g1 d5 ]) J: p) k6 M6 p
int color;
; W" ?$ [- E) m* R; rfor (color = 1; color < 16; color++)
4 ^- W/ g) J: _2 | {
# \( ^2 {6 n& q/ @$ v textcolor(color);/*設置文本顏色*/% i! `- t3 ^/ c; O& ]: I
 cprintf("This is color %d\r\n", color);$ g' t% C( L9 W
 }, \# w- D8 m4 \3 z3 E+ F+ v" h* V
textcolor(128 + 15);
' L, v3 V. y) I/ d; G* }' l) Wcprintf("This is blinking\r\n");  z1 y2 F  X( W
}
$ |1 Y7 |1 B) s! i, _==============================================================
& V5 I. R% ?# ]/ E/ s# j# t- W5 C【程序36" X. r2 r5 x: q3 L: m1 S
題目:求100之內的素數   
: e2 X4 X3 E2 z/ y, X( a1.程序分析:8 O5 y/ q4 B" _2 h3 s' Z
2.程序源代碼:, r2 W: J9 x: |* q# F/ r+ x
#include 9 a1 R: s5 Z+ h" A6 D
#include "math.h"9 s9 ?' M+ O# f) i& Q% ^/ j4 {  f% F
#define N 101! K$ P+ q5 G: D7 y( e. N* n
main()
+ Y& B1 y5 x, p. g" ^8 A) ?: c{' o( P2 o# e- L9 g8 ]/ r, l
int i,j,line,a[N];
% z) ?- Q4 e0 ]& d" c2 @for(i=2;ifor(i=2;i for(j=i+1;j {
) u8 y: W) Y! w  if(a!=0&&a[j]!=0)# K0 U; v: U2 R! B" I( }0 t; _
  if(a[j]%a==0)4 e" |2 m" Q; P: E4 v6 p
  a[j]=0;}
) @% ^& a2 I. L) G' J  o$ L  S/ z$ q2 Cprintf("\n");2 P2 Z- J* n! P4 |- m5 B
for(i=2,line=0;i{* b8 m$ C+ Z( H) U: {6 E
 if(a!=0)
8 J0 ~! ?! {  x2 q) m' D% p( z {printf("%5d",a);" H) U, `- ^, V! _- u" Y" r
 line++;}
, o. q- \0 ]" y2 X* t& p+ T% k if(line==10)
3 ^1 U4 U, w. J) _ {printf("\n");& d  c  i2 T  I; d% n. r' u8 |6 D
line=0;}
: l+ W2 S7 c" q: A1 }}
  @* {+ z0 |  F9 p8 n- G}
3 v6 D' @5 J- m7 u9 n% u. ~==============================================================- x2 K" u4 X( F, o- h7 ~
【程序37" S6 j, G3 C  S$ Q- N$ e/ U! m
題目:對10個數進行排序
& ^1 g- K. ?% i# x6 i1.程序分析:可以利用選擇法,即從后9個比較過程中,選擇一個最小的與第一個元素交換,% C* P3 k: M: I* R8 C
      下次類推,即用第二個元素與后8個進行比較,并進行交換。       
4 w' ~- M6 i2 _+ C1 h2.程序源代碼:- B2 [! [; w* d3 v* `) A% v. s
#define N 10
2 f8 A8 O' |- B0 r6 P# hmain(). T8 j1 Y/ r5 r# Q
{int i,j,min,tem,a[N];4 i9 I( P% a1 \3 e, y! S
/*input data*/! g9 V; S+ R/ w5 ^
printf("please input ten num:\n");
8 r9 b; {$ p5 M9 R" r; Dfor(i=0;i{
5 V8 C, \4 T7 v) sprintf("a[%d]=",i);
; P/ X; i) u# J4 |$ |8 p6 ~scanf("%d",&a);}
9 y+ C5 P) M$ kprintf("\n");% [6 Y9 ^) H, r' L' q
for(i=0;iprintf("%5d",a);: u* a$ B# v) ~4 z" X
printf("\n");- X: ]7 {1 s% V( Q& [9 d9 K+ w5 i
/*sort ten num*/& ^8 k) c. B4 x# r' A0 j( J
for(i=0;i{min=i;! R" z  M+ h2 ]% `
for(j=i+1;jif(a[min]>a[j]) min=j;1 B* L' c$ s5 |! W* H/ m
tem=a;
) j4 s. D/ X' n$ aa=a[min];
# i0 W4 S$ }# za[min]=tem;
2 U/ L- P- [. X% c8 B; z- }7 y}1 k9 ?8 W, C- ?8 I
/*output data*/6 A4 b& ?1 h* D4 _6 e% {+ t  |, p! N& X
printf("After sorted \n");
5 W1 ?& |5 ]3 w& Xfor(i=0;iprintf("%5d",a);
; T' |, e: E4 S" n* v}2 s# w# @' y* o2 H
==============================================================
$ b1 D. ?1 C+ E, E/ E+ d: x

) e; L& J) L5 V# E
作者: xinmai123    時間: 2017-10-7 16:29
十五字十五字十五字十五字十五字
作者: qq642446015    時間: 2017-10-8 11:09
C==




歡迎光臨 機械社區 (http://m.whclglass.com.cn/) Powered by Discuz! X3.5