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

 找回密碼
 注冊會員

QQ登錄

只需一步,快速開始

搜索
查看: 6623|回復: 16

C語言經典算法100例

  [復制鏈接]
1#
發表于 2017-9-23 10:57:34 | 只看該作者 |倒序瀏覽 |閱讀模式
【程序8+ Y' j: X; b1 o$ J7 d" M" n" Q4 J
題目:輸出9*9口訣。 6 e: l  r1 f& J! }+ ^+ v  q# T
1.程序分析:分行與列考慮,共99列,i控制行,j控制列。
7 I1 V* E8 E+ ^+ s- a! v# g2.程序源代碼:
' g3 ~3 A( o/ o/ `8 R) t#include "stdio.h" * G5 d  {7 X0 V1 j) S5 g
main()
3 D( e: t7 P1 F; f5 Z{ ' I: L- ^8 |2 Q. l" {; i
int i,j,result;
; D" A2 N" @* x6 }3 {) o; ~8 qprintf("\n"); ) C: ?& C6 }, D( W
for (i=1;i<10;i++)
5 R6 F" f' l0 U, J{ for(j=1;j<10;j++) 2 |: y- x8 z$ s5 ]- V8 r, D
{
7 U+ Q/ P. E# j+ J( oresult=i*j;
5 @- w: t$ B2 m$ r& }printf("%d*%d=%-3d",i,j,result);/*-3d表示左對齊,占3*/
7 p0 v9 W; m; Q}
4 J5 ?/ x( ], l$ W  ?printf("\n");/*每一行后換行*/ & ^+ e6 t0 v" |# F: U# C
} # e) f* X  N9 q! V( r
}
6 u: n3 P6 t- L2 l  ^============================================================== / \4 u* P4 B5 V" B  A
【程序9
7 O( V: Y3 c& W. X4 j  S題目:要求輸出國際象棋棋盤。
# W6 v, V# X$ @0 [+ G8 b1.程序分析:用i控制行,j來控制列,根據i+j的和的變化來控制輸出黑方格,還是白方格。
6 N- E; _! V$ R2.程序源代碼:
) i+ |7 @7 ^4 k6 q* y#include "stdio.h" + [- P9 O0 ], R  g4 m1 c  o
main()
7 W: C* u  l7 t5 T" q( `% B{
# H6 \/ K9 m. A  G3 V( _int i,j; 7 \$ s9 ]8 l( J% H, Y2 Z
for(i=0;i<8;i++)
9 Y7 z  r9 ]4 U% Y) t; K1 F. p{
: T2 I) k# B* w9 Mfor(j=0;j<8;j++)
$ @- {6 j2 ?( e3 ?: |if((i+j)%2==0) 0 V: C' U0 j3 E9 H
printf("%c%c",219,219);
* }4 E# L' L# ]# ]! Q$ delse
. S* g" o  U) }/ fprintf(" ");
* ~; ?" `4 @! u* X8 Uprintf("\n");
5 M) ^8 f% S2 f. I! L. t}
5 l( _8 M2 k6 w, h}
# K  _7 R8 @+ o8 v==============================================================
+ t% i: z) j) N4 B$ H$ s( l! j8 q* i【程序107 @# a0 S- L" d5 }
題目:打印樓梯,同時在樓梯上方打印兩個笑臉。 2 U3 r6 @* m1 f9 U. C
1.程序分析:用i控制行,j來控制列,j根據i的變化來控制輸出黑方格的個數。 0 c. R4 F6 ^: P5 t6 c) G
2.程序源代碼: 2 Y( F" j4 O) w+ \4 a
#include "stdio.h"
' |5 j2 w' v. ?4 ^5 x# x7 e! |main() * ^: K3 b+ e* n- O3 h% @
{ 2 @& x" L( }4 J6 |0 m' a' X
int i,j; % |/ r, F3 L$ v& X2 G, e2 ~2 t0 A7 ]
printf("\1\1\n");/*輸出兩個笑臉*/ : [6 E2 F7 @0 Y! S- E7 G& Z, F
for(i=1;i<11;i++)
1 z3 q* f3 D* {; A{ ( q+ E0 `, R+ X3 |9 F% v
for(j=1;j<=i;j++)
- S9 X8 d( `, G( C- Y. xprintf("%c%c",219,219); 2 y7 N7 Y; L9 C6 q  B
printf("\n"); 8 [* D6 _# D- M; X# Q  v% ^( f
} 9 ]+ u& K/ Y4 i- x
}
$ V* X" b- z' A5 M5 q8 H# D6 s4 n' U3 w3 f; }. ?! j) ?
5 E. _1 e6 K. Z  k2 j4 Z  J
* W+ q4 t2 p' j5 p4 Z- ~6 p
作者: zhlei81 2005-1-22 11:29 回復此發言 3 R$ Y" ?+ U- J

0 U$ C$ {; O" N. E6 c--------------------------------------------------------------------------------
# C5 O4 [7 j2 N$ M) Q$ c
* N. B9 `6 ~" J- N& `* b( `- J3 回復:經典C源程序100
0 F) H6 o- R& J: Z' _3 g【程序11  F) E) \4 |! y3 |/ u
題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月
6 H3 Y. \$ G4 w/ k) V后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?
: V9 V6 i! Z  I( v( M8 W, ~6 g1.程序分析: 兔子的規律為數列1,1,2,3,5,8,13,21....
4 Y4 j' ~" \+ g, A- R2.程序源代碼:
, x! U, A  B& S$ b0 g: vmain()   J9 e7 s4 C) D. z  Y
{
. T& d4 A& L5 a3 `7 ?0 s5 h- f0 @; zlong f1,f2;
$ {, h* x2 x9 Y8 Q; z2 K4 Gint i;
1 `& G: O. k# Kf1=f2=1;
; p$ D0 A( y& q5 U; j$ o. ~" Pfor(i=1;i<=20;i++)   c% _! x% I+ \. R
{ printf("%12ld %12ld",f1,f2); : b' {* x9 @/ b, m8 ~
if(i%2==0) printf("\n");/*控制輸出,每行四個*/
1 Z  [1 L' }1 T- b: o( H# f( P/ ~f1=f1+f2; /*前兩個月加起來賦值給第三個月*/ 0 Z, o7 y3 c, s, i5 j+ b
f2=f1+f2; /*前兩個月加起來賦值給第三個月*/ : ^8 m" N$ w# {( ]" |( U1 ^3 h
}
$ _7 X' M- G7 [2 ]- J3 B0 |}
" I: v3 n2 O, |4 D3 b==============================================================
, x8 ?4 R6 g' V% X4 O【程序12
. t- ~+ a3 a3 y/ [% y0 y0 k題目:判斷101-200之間有多少個素數,并輸出所有素數。 8 q+ E. B* h+ e; R9 [7 N) S
1.程序分析:判斷素數的方法:用一個數分別去除2sqrt(這個數),如果能被整除,
. q% }8 h5 k: `8 t3 P則表明此數不是素數,反之是素數。 9 y2 P8 z5 {# V" q3 b
2.程序源代碼:
0 c+ i" [+ e1 H1 `/ }/ M3 {#include "math.h"
* b: L9 w& }( P) X9 Dmain() , [0 H( t0 j: e2 ^
{ 3 L2 p8 Z7 j5 A' U$ }
int m,i,k,h=0,leap=1; ( A8 w! \' I9 a) K  t2 h
printf("\n");
3 N0 p. ^# i- ]- B' I% W! i3 D0 kfor(m=101;m<=200;m++)
2 p( p3 P% g+ c# U{ k=sqrt(m+1); . K0 b2 a6 |7 j0 y: Y
for(i=2;i<=k;i++)
3 m1 q) @3 g& L# P5 Pif(m%i==0) 6 T, ]( {# ?& l( _: l
{leap=0;break;}
/ _. u* ?  z) D9 G& S) `if(leap) {printf("%-4d",m);h++;
5 _$ }0 a5 r* O7 B( L; \if(h%10==0)
0 D! O* i( z; j6 W4 ]! M- |( tprintf("\n");
* g' R) E( D# c; t} 8 C- c/ b9 X- c& y( I' ?; G' t: J
leap=1;
" G5 }) l5 V: S$ d, R}
5 N( Y7 K, ~: i, Kprintf("\nThe total is %d",h); 5 q) c, g* N( L. C( V* R
}
2 v- n( K( M% V==============================================================
+ y  E0 M) z) k, G# b) Y: c. w【程序13
0 e4 V, S  l2 |- ^) z- ]( s" g9 O題目:打印出所有的水仙花數,所謂水仙花數是指一個三位數,其各位數字立方和等于該數 " R0 B2 |" n) }* K' E4 I
本身。例如:153是一個水仙花數,因為153=1的三次方+5的三次方+3的三次方。
$ F, y9 X6 \8 g; P2 }1.程序分析:利用for循環控制100-999個數,每個數分解出個位,十位,百位。 0 V! N0 f) _0 Z# K9 A, M& o
2.程序源代碼: / I& i, s9 t$ H2 V% I
main()   X% `. O1 z+ @
{ 9 d6 u+ D% G& y& ?$ Q- M
int i,j,k,n; 5 L; ?/ @0 I" Q  L& Y0 w) }3 h, E7 |. V
printf("'water flower'number is:");
+ N. V  l' A7 a* T, f& zfor(n=100;n<1000;n++)
) \) {+ i4 o0 D4 k6 L{ ) C! f  b; r9 h; J/ y
i=n/100;/*分解出百位*/ + C1 R+ f1 s! U! s3 |0 D1 Q
j=n/10%10;/*分解出十位*/
6 ?1 x" l7 T. @, h# m) K0 R2 s* c" ek=n%10;/*分解出個位*/
$ m9 e  [* N2 i8 o1 \9 r  P( Jif(i*100+j*10+k==i*i*i+j*j*j+k*k*k) ) ^  {+ a+ K; H; N
{ + r# H( ?: p' f# W
printf("%-5d",n); ! a3 F/ R( e6 W
}
" i: U: \# r. Y' s} " v5 R; f9 S. K) C2 C0 d
printf("\n"); / k; e' {$ [, b& Y; @
}
" h" Z% E4 C& w( `. `( r============================================================== 7 e) a" k+ o& {) W* F
【程序14
( P6 G: U, i( d+ n9 O題目:將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5
" g5 E$ o6 z" g% o) a4 Z4 J3 v- ]* Z' P; `3 Q
程序分析:對n進行分解質因數,應先找到一個最小的質數k,然后按下述步驟完成: , m$ f( Y8 S% G1 e; c' h* m
(1)如果這個質數恰等于n,則說明分解質因數的過程已經結束,打印出即可。
% N& N; F& J' e! p7 E. @, U(2)如果n<>k,但n能被k整除,則應打印出k的值,并用n除以k的商,作為新的正整數你n,
( ^2 f  ]1 K3 Q- ^( {4 I重復執行第一步。
  k) Y0 q  H/ Z/ D! {7 X" p(3)如果n不能被k整除,則用k+1作為k的值,重復執行第一步。 # u- i  ?+ J" p5 A# }+ C
/ h: T" H5 o/ C4 L
2.程序源代碼:
/ B. B1 m$ w2 x" V3 l) d. ^/* zheng int is divided yinshu*/
# Z. W- S0 K" y! Q6 G  G/ Y% c6 Nmain() ( F$ n$ P7 Y+ c% ]  Z6 }2 Y
{ 5 I: }1 a, ~: _- ^
int n,i; 9 A, g; ^! G2 g. ~
printf("\nplease input a number:\n"); 5 O+ D6 C( T+ f2 v8 S
scanf("%d",&n);
* y% d! W, b. u  \) p) g' v+ Eprintf("%d=",n); ' d' c# c, o, R& ~( W' Z
for(i=2;i<=n;i++) , p% I5 J  w3 K2 f" k. A
{ 4 h+ K+ o. }' ]5 z0 `6 A
while(n!=i)
# L8 k+ `+ u1 K5 V1 m7 z8 u3 n& N{ 6 X6 i! c* j  D1 N& E( ]. w* t, J
if(n%i==0) ! L( ?' |+ P6 M+ ~7 W
{ printf("%d*",i); 6 \" c3 a( K# G2 K( D
n=n/i; 7 L; S$ G& _3 q% ~' f
} . F5 g. v! T$ M
else " i7 k- p/ k) n$ l
break; 8 v, v0 K( }- G( O8 H- e
}
8 ?5 E# J: u3 [9 t! d% x} ; W3 \; h2 z% Y) T+ J
printf("%d",n);} - q3 H+ q: J* V6 \& J
" U* e0 y; s& K
回復

使用道具 舉報

2#
發表于 2017-9-23 11:47:18 | 只看該作者
看來也并不是那么難。不過飯還是大家分著吃。
3#
發表于 2017-9-23 12:52:40 | 只看該作者
趕腳很牛掰的樣子啊,機械人完全看不懂
4#
發表于 2017-9-23 16:14:55 | 只看該作者
收藏了,樓主不會是在學程序開發吧。
5#
發表于 2017-9-25 17:47:49 | 只看該作者
不是100例嗎?
6#
發表于 2017-10-9 21:20:33 | 只看該作者
c語言的基本應用挺好的
7#
發表于 2017-11-23 15:37:41 | 只看該作者
好東西
* i9 P1 x9 S# C& ^5 ]: y2 d3 \
回復

使用道具 舉報

8#
發表于 2018-2-28 13:51:49 | 只看該作者
在學校學習過這種
9#
發表于 2018-2-28 16:57:19 | 只看該作者
看見程序就頭大
10#
發表于 2018-3-4 22:16:13 | 只看該作者
你騙人,我數了,不到100例,把剩下的吐出來,不過還是收藏了,雖然簡單,但是基礎和根本。
您需要登錄后才可以回帖 登錄 | 注冊會員

本版積分規則

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

GMT+8, 2025-9-26 04:23 , Processed in 0.065383 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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