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

 找回密碼
 注冊會員

QQ登錄

只需一步,快速開始

搜索
查看: 2520|回復: 2

C語言經典算法27-37

[復制鏈接]
1#
發表于 2017-10-7 16:23:09 | 只看該作者 |倒序瀏覽 |閱讀模式
【程序27
! \+ U& s+ p. I* N  r題目:利用遞歸函數調用方式,將所輸入的5個字符,以相反順序打印出來。3 y( Q. e; H5 O: v, L
1.程序分析:! A1 i. n* p2 p/ z
2.程序源代碼:
/ k% Q3 i& p& r) ?9 j# d+ H#include "stdio.h"# }* D$ Q) I9 f+ \$ ]% r
main()
9 o% o0 C- E' r{
& ], {# u" j7 s) J+ L) z7 I" dint i=5;
* O: Y8 J! B, L$ L- u) ~void palin(int n);
; x( H! \5 I! Y- {2 Hprintf("\40:");# }; l3 |2 u; a/ p
palin(i);9 Q& f% A- f+ t( t$ B! n
printf("\n");# Q# A1 m" d; R
}
9 {( g: X& l% u2 Vvoid palin(n)
% k* R) u3 r+ |1 l( i, S$ O! tint n;+ Z! k+ O: `) v' C, C# N1 M
{$ z5 t. v: Y4 L: ~: I5 U+ I3 N
char next;
7 N( Q5 `% z, B! ~) s# m/ i5 pif(n<=1)  n& Y& K9 R$ i- G4 d+ G4 ?: a6 l
 {
, D( k8 S8 F& v1 a+ p5 v+ F# p1 u5 H next=getchar();/ D9 H7 u; q4 R3 a; k1 M
 printf("\n\0:");
! J% w3 P) J- Z7 f* _, u7 u putchar(next);! \% O2 K$ w/ |! e/ V& U
 }! v# c* \+ ?/ s2 w2 a( ]
else! c6 T( f  F7 T+ o- V5 K
 {
: |! y- v1 w* @ next=getchar();6 K" ~/ c7 G/ n+ T3 |
 palin(n-1);
0 A+ Y' A' j+ ~2 i putchar(next);
6 R  e; L, r. T3 m9 f }
+ T+ K& s2 r; Q: t3 f}
" Z; O" f  b* @7 z  g0 K! x==============================================================' g: o" E* k- k
【程序28信盈達嵌入式企鵝號要妖氣嗚嗚吧久零就要
0 F9 b+ j# Q0 O# u1 y1 |題目:有5個人坐在一起,問第五個人多少歲?他說比第4個人大2歲。問第4個人歲數,他說比第
9 }, z( |8 y2 e; d" z; O   3個人大2歲。問第三個人,又說比第2人大兩歲。問第2個人,說比第一個人大兩歲。最后 9 K1 R( v. v5 ^7 H9 C* z- j9 Q7 d( ]
   問第一個人,他說是10歲。請問第五個人多大?- ]$ X0 w4 d5 U  J7 O
1.程序分析:利用遞歸的方法,遞歸分為回推和遞推兩個階段。要想知道第五個人歲數,需知道1 e6 L" m# D0 `0 ^# ~
      第四人的歲數,依次類推,推到第一人(10歲),再往回推。
  d# i1 s8 n, q6 S8 l+ P" Y2.程序源代碼:
1 \+ u/ J7 d: h* J5 A5 U0 N3 vage(n)
# f* j) N8 ?7 f. i2 d: c; ^int n;; R' L1 l9 w, C' e" Y& l6 V: [
{
- ]& Y% f  c3 r  D5 Z5 t% Fint c;
: S0 ~- \9 x0 B' b4 \& n, Nif(n==1) c=10;
7 B; D2 q7 f( h% U  |1 Selse c=age(n-1)+2;% E' |) ~1 h$ \+ z. p- o
return(c);& l5 l2 Z$ [4 I9 _, D
}9 z5 b5 [) v1 w1 T6 e% Q
main()8 w8 ^8 ^$ c3 @( G3 M
{ printf("%d",age(5));; _8 T( y, K. ^% F& L5 I' a2 y
}8 F1 h5 G, F6 x
==============================================================2 W0 \5 n1 Q3 b- L; _: b
【程序296 b: w2 y) k: [" j
題目:給一個不多于5位的正整數,要求:一、求它是幾位數,二、逆序打印出各位數字。
6 R0 ~7 x5 @4 g$ Q6 S% h# b2 X+ N4 T- K1. 程序分析:學會分解出每一位數,如下解釋:(這里是一種簡單的算法,師專數002班趙鑫提供) : I4 b1 _: |5 u
2.程序源代碼:
+ }! ]& _+ ?+ X" P$ G0 Hmain( )( j8 d* C2 L, a
{
( A% n! K: O$ f) x" g! P7 E/ u% Tlong a,b,c,d,e,x;$ z! I- r- L4 v, s; m, G" ?  m, w5 N
scanf("%ld",&x);; h" o" P# D- A* e. W( }6 r" }4 I
a=x/10000;/*分解出萬位*/- \! a: e# {) M7 s9 F
b=x%10000/1000;/*分解出千位*/
( m3 z+ Y$ J; {. W4 Vc=x%1000/100;/*分解出百位*/6 `, N* }# U- G% B. v
d=x%100/10;/*分解出十位*/% |" s' G8 ^0 r7 I+ N7 O/ M
e=x%10;/*分解出個位*/! B/ C& Z. X* p- ]( V0 T
if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);
) H2 F. K1 k7 |# C8 {1 t' M) X; ~else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);
# r" m, z) q7 }+ W5 v" M  W" h& L  else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);; T" B- Q  c* q' ?6 X
    else if (d!=0) printf("there are 2, %ld %ld\n",e,d);# g& y5 I  W# o. o& c+ E
      else if (e!=0) printf(" there are 1,%ld\n",e);1 P5 e& i) e/ T7 M+ ~1 [. Z
}* `$ @" B+ `5 p; G
==============================================================
  |" i  ^( _) H& S! f【程序30
6 [0 h/ I$ n- I4 {  O題目:一個5位數,判斷它是不是回文數。即12321是回文數,個位與萬位相同,十位與千位相同。   4 [/ K; K; a% m
1.程序分析:同292 m) a! @& @, `; O1 w
2.程序源代碼:7 n5 c0 q6 N" P
main( )$ V3 D/ Y: ~$ C! C2 n. ?
{
" V2 L  L; Z' C4 S  b" j+ Mlong ge,shi,qian,wan,x;
! R2 J, `' o. U& K9 o! G9 Qscanf("%ld",&x);" {' p# y  `4 S1 S8 o' B
wan=x/10000;
1 L1 h: Y$ h+ Q* V% {4 z+ r; A  |qian=x%10000/1000;! }  l4 r- ]' k0 Q( o' L, T4 m- F
shi=x%100/10;
$ C( R+ z3 g" Q+ n' I0 T3 y! ^3 Uge=x%10;; _+ x5 V! `7 m+ ^1 ]6 }
if (ge==wan&&shi==qian)/*個位等于萬位并且十位等于千位*/* x/ M  t1 c; d9 g& H9 E
 printf("this number is a huiwen\n");
" c' Y' A6 ~# {, j+ {else
4 K- y+ w- U, i1 a3 O  n, a printf("this number is not a huiwen\n");0 D, Z) J  [. D: C+ G4 ^3 Y8 t
}
【程序31
8 j/ S# H, f* g1 B題目:請輸入星期幾的第一個字母來判斷一下是星期幾,如果第一個字母一樣,則繼續
/ s# `; P- @  V   判斷第二個字母。
, v9 I& L& h* |( g8 Q+ y% n( x1.程序分析:用情況語句比較好,如果第一個字母一樣,則判斷用情況語句或if語句判斷第二個字母。- H0 L, A1 J) o+ Q' Y0 Y
2.程序源代碼:
( m( Y9 \/ P' w4 I, T- R/ y% T#include & I- v. u& c1 W# q% g6 W
void main()+ T+ N6 c# f& Z5 b* `: f9 M
{
5 y' k' J: g6 q3 l9 q( \% T2 Tchar letter;+ ~# A! `( n' p7 M. o/ s
printf("please input the first letter of someday\n");
( S/ x4 g) M/ z& C. ^0 o0 d4 Jwhile ((letter=getch())!='Y')/*當所按字母為Y時才結束*/
. {" Z$ c* \9 \* v{ switch (letter)
; V. a4 r& u% w{case 'S':printf("please input second letter\n");
2 k; E2 n& t2 M3 K! z! o. \* c     if((letter=getch())=='a')
0 @5 j3 E. H! L! h5 |5 Q' g* ?      printf("saturday\n");
+ ]9 N! v/ u: z- w; `% ]. B     else if ((letter=getch())=='u')# p! u8 x$ e3 E. m+ v. j4 C
         printf("sunday\n");
6 _' J$ w4 o, k9 A       else printf("data error\n");
( E4 R; `3 |. S7 A0 f& O- @$ _& g     break;0 |- Y% ]$ M1 k. X$ j: c
case 'F':printf("friday\n");break;# O7 g" T' K2 w* C8 @
case 'M':printf("monday\n");break;
- o" S4 @; V8 o: v: U: \$ n% Acase 'T':printf("please input second letter\n");
. L- f7 Q% d7 k     if((letter=getch())=='u')
- Z! ~0 E9 i8 P( f" D7 n+ s) [/ ]* I      printf("tuesday\n");) C! N* @5 h+ X( L+ L% _) u- M
     else if ((letter=getch())=='h')
4 e: L  l0 F! `: [8 ]         printf("thursday\n");* P- L5 e# J6 [* V* [( J. d7 @
       else printf("data error\n");- `5 s7 d# V/ W% ~. j6 s$ U
     break;2 n. V) n1 C$ Z8 o! n/ I
case 'W':printf("wednesday\n");break;2 p! w, q+ K1 s6 [
default: printf("data error\n");
& v; y9 A7 t3 O; o3 J% S  }8 Q7 i; _" i7 e. M, J
 }
, ]9 f& v& ^$ N3 m( X}
# S7 m" x, F, W==============================================================3 `$ p7 I& D3 s7 P- s" h  m
【程序32( k4 T. m1 Y6 O/ X, l
題目:Press any key to change color, do you want to try it. Please hurry up!" D2 I; m! X: L" v4 ^& X2 W" ?
1.程序分析:            + _! `& z& L3 E* ^  g. J
2.程序源代碼:
/ H6 v& T9 `8 v* ?, r#include
( x) {1 Y# ^* Q& Evoid main(void)
* b* A0 K' g6 r( [{
  f! B& y, H2 {' q2 [. B2 pint color;7 S, [/ g, ]7 @- g
for (color = 0; color < 8; color++)
. ~" `6 e$ y- _" s( V {
& H7 L- D) j4 T! d; f0 K0 w7 j textbackground(color);/*設置文本的背景顏色*/
, r' s6 J0 R. Y$ K# z* d+ B8 c cprintf("This is color %d\r\n", color);# ~! k% Y& o9 k6 |1 e
 cprintf("Press any key to continue\r\n");8 V) Z+ ~2 |) I, u% c) w
 getch();/*輸入字符看不見*/
# {8 _: G  a8 i. E$ q# ] }
$ d1 z; E! r! g4 H. q}' u& |8 d+ Y$ n
==============================================================
+ J! b4 b6 T6 B2 {: q【程序33
% I6 @! y/ d, ^6 U題目:學習gotoxy()clrscr()函數   - ~! J$ M( n/ T# S' p
1.程序分析:
$ n/ Y, T: o2 ^! e# Z/ y2.程序源代碼:; m) s7 [% i! V, {& P5 d
#include 5 W4 |/ W0 H$ o& ?8 G2 U
void main(void)
! s% q3 n. o8 o- [  v: I! w{
2 x+ K0 y2 v1 wclrscr();/*清屏函數*/7 P4 i& a- J- R& I# z
textbackground(2);
1 ], s+ m" r  K5 V0 Hgotoxy(1, 5);/*定位函數*/
* m5 Q% S2 V% p5 a7 {6 y/ f' Icprintf("Output at row 5 column 1\n");, J* N' T6 W5 L8 a
textbackground(3);
/ Q5 u1 o6 |2 x( @9 @$ W5 ], A  ]8 Rgotoxy(20, 10);6 A" A! O2 P" o8 p
cprintf("Output at row 10 column 20\n");
$ D" \+ G6 r6 Q% L+ R}
' J. I1 O! U; f+ h! W+ ]6 `==============================================================
& `+ v8 [! V$ v0 }% A【程序34
& d$ I! V# R0 _$ }題目:練習函數調用
/ C7 R& i  {3 L" r6 j- L1. 程序分析: 1 P3 ^+ L  B: P8 }. B9 p
2.程序源代碼:. y% Y* e' L2 A: j0 t
#include
9 x8 u0 l  h3 S" |$ z  {void hello_world(void)3 @5 T/ [# ?; ~0 _& }- j1 S
{) F3 ]+ V( b3 |- {$ `# {5 A
printf("Hello, world!\n");
' u" t# u% u) q/ V# i}
' ~$ ]4 U# w/ _! x, U3 Cvoid three_hellos(void)
( n; x' W0 N- s2 U{# }2 c, [  k+ X; J0 V2 o5 N7 U
int counter;! x+ B3 a3 U3 Z) n' i' F7 x
for (counter = 1; counter <= 3; counter++)
. n5 D8 n/ N5 B# khello_world();/*調用此函數*/
5 [6 R$ l9 X5 Y}- d" }( i( w5 B: J: L6 E( P# n$ H, z
void main(void)" q6 Z8 Y  V  d* h
{
5 |  s( R2 Z/ U: W0 B9 Jthree_hellos();/*調用此函數*/
$ ~) q+ g. ~0 z}
/ y0 M% x( ]. X0 a==============================================================
# T, w$ }4 S3 w' z2 d' g【程序35
# T$ ]0 j) F& U: G3 R8 r/ q題目:文本顏色設置' u3 h9 [9 ]9 ^
1.程序分析:4 J+ ?+ Q  u" R9 p& p
2.程序源代碼:
3 M+ I3 K( [1 i) t- O  p#include
7 q& V  q9 c6 n% m& evoid main(void)% o: b4 U1 y3 Q6 j  r
{7 w" R7 z/ |5 j8 E: h
int color;
9 F% S  l* S. O/ q& W# Ufor (color = 1; color < 16; color++)
8 J3 [! r6 O1 c) e2 R6 z {
) ~1 E( G' _* F& i- ~; X textcolor(color);/*設置文本顏色*/
0 v5 K7 A! U) }. w; K/ V& b cprintf("This is color %d\r\n", color);
( t+ B' ~# k- C. k }( N# K7 J$ n) V2 l
textcolor(128 + 15);+ a8 y- A& s6 t* L) H  w) B
cprintf("This is blinking\r\n");
& i% Q6 J6 ]9 ^; A) S7 s}
8 h% J" ~) W) I9 h==============================================================
" P) s7 K3 U: z! Q( }( s2 `& c【程序36' M7 c  {) z  O+ |
題目:求100之內的素數   . f+ s) H0 m; X5 a
1.程序分析:) v4 h3 X, l* e2 }3 P+ W
2.程序源代碼:
' R: M, [$ M# _# K5 v4 {#include 0 t5 g' ~; V0 p
#include "math.h"( b) t7 @* O6 N! C' M0 Y
#define N 101( |7 h( _! @  L+ M/ c2 y- d
main()
2 f+ z$ R# @) {( Q7 s{, K9 M+ F( _; Q3 m" o
int i,j,line,a[N];
' g2 q: ]$ t0 Y8 Y( l0 a4 hfor(i=2;ifor(i=2;i for(j=i+1;j {
3 T4 g  L8 C4 f  A  R( |6 `  if(a!=0&&a[j]!=0)
* x) M- p. v0 x. ]8 C3 x8 Z  if(a[j]%a==0)
1 _6 _# S$ O) _  a[j]=0;}% n$ h& h9 x3 C2 `7 X" I
printf("\n");# t8 h1 n% H! G% l" p  p5 w
for(i=2,line=0;i{
. |0 g+ j2 C+ H5 Q3 }2 |" v% d1 E3 i if(a!=0)
; J0 ~; R, Z, S3 R3 f) A {printf("%5d",a);
$ F4 v8 d) X% ^6 p( C& ]9 k8 z line++;}6 @* O. Q  d% {9 Z1 K( Q( b2 [
 if(line==10)2 I3 e6 l2 i7 o9 Y: }# v
 {printf("\n");
* ]" r, L. _" d/ y# K' A8 F1 K% Nline=0;}/ o; c0 W( e. Y- ]: u, T% T5 B. s4 v3 G
}
1 J2 @; ]" j6 @4 m1 q4 l; K}0 U' ~5 s' E; O& z& h- T( |  h
==============================================================
6 h2 d1 l9 s- Y; ~3 d【程序37
2 P6 Q/ E) Q; K) Z: p題目:對10個數進行排序
2 Z) D/ I7 b- j: n0 q1.程序分析:可以利用選擇法,即從后9個比較過程中,選擇一個最小的與第一個元素交換,
! X7 Y9 h3 r' j9 w1 _' ]3 l: o      下次類推,即用第二個元素與后8個進行比較,并進行交換。       
/ _8 ^. C: _7 [: F2.程序源代碼:& T, j) x9 V3 Q
#define N 10$ d! N; t1 l  q  C6 Y1 H) D. K% H
main()
7 `0 S! |5 e+ S+ F. \" s{int i,j,min,tem,a[N];
% B; |0 O( t: f6 y$ L1 \/*input data*/
$ j1 P% W( X$ O* S* M! A& B0 iprintf("please input ten num:\n");0 \4 k" }" ~1 s4 V4 ~( S- l7 m
for(i=0;i{5 W: `* Z, I( B* \5 M
printf("a[%d]=",i);
9 l& o/ v3 P. V) w( ~scanf("%d",&a);}
' j1 \* G  u" ?0 v4 u: R3 L9 Wprintf("\n");& ~$ |4 V# g4 J" `- y
for(i=0;iprintf("%5d",a);
( d+ Q: s% G1 y' }printf("\n");6 o7 F8 I8 U3 S$ N# P
/*sort ten num*/% _- [: s5 ?  q( `3 o9 n5 d
for(i=0;i{min=i;
5 C! ]$ i+ Z2 r' R4 @; o" e$ D2 {for(j=i+1;jif(a[min]>a[j]) min=j;5 R% z( F! d' A
tem=a;
+ |4 X4 V% {" v0 K0 Pa=a[min];& A$ ]/ y! q& w- z
a[min]=tem;
4 Y, t* H; C2 `, X+ _5 o}% T$ v/ N/ o4 X' b/ g' n+ |
/*output data*/
. S, M# F6 |/ aprintf("After sorted \n");& @' @! \( h- R# {
for(i=0;iprintf("%5d",a);% u4 a, G8 f# v( C& K/ @; t5 a/ M$ K
}
3 y6 d4 j8 B: V4 W0 [==============================================================% _0 s" x; r9 K' ?/ ]  y
  f8 z, W$ q- A7 H% i3 e# F! @; S
回復

使用道具 舉報

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-25 00:13 , Processed in 0.064695 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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