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

 找回密碼
 注冊會員

QQ登錄

只需一步,快速開始

搜索
查看: 6441|回復: 16

C語言經典算法100例

[復制鏈接]
1#
發表于 2017-9-23 10:57:34 | 只看該作者 |倒序瀏覽 |閱讀模式
【程序83 B: H" Q& b/ `$ _# k
題目:輸出9*9口訣。
3 h5 X, E  t4 z) L6 R3 ^1.程序分析:分行與列考慮,共99列,i控制行,j控制列。 3 a7 }1 x) W$ ~+ W
2.程序源代碼:
) ~, s2 Q% M$ r% Q: a#include "stdio.h"
% @: w4 X4 J, W; U+ Pmain() ' `6 O: U$ m! C+ w- h- X8 I$ @
{ 1 G# z3 {( J# U! ]6 L2 I4 f2 W
int i,j,result;
( |9 ~2 R- F& G1 Iprintf("\n");
& G" P2 N% L! `3 dfor (i=1;i<10;i++)
0 X5 Z: h# w8 o% P. D{ for(j=1;j<10;j++)
7 A5 Z3 }, ^) \" v# ]{
/ J, x" J. o0 Y1 V! ~+ P) z! `result=i*j; . t" ^9 t) l+ i: S
printf("%d*%d=%-3d",i,j,result);/*-3d表示左對齊,占3*/
  m* E7 x; h. j: i: _}
3 N" w7 O- x7 }' yprintf("\n");/*每一行后換行*/ . S9 x; V& U8 B+ O9 \
}
8 t: S* g5 {, B8 B! b} . p7 r# b" X3 |
============================================================== ! z  s8 K6 K& @! d; C' H; u2 G8 F( s
【程序9
0 S! j4 z" O* r7 c; O* @" d題目:要求輸出國際象棋棋盤。
0 a/ M' M) Z3 T8 D; I8 g1.程序分析:用i控制行,j來控制列,根據i+j的和的變化來控制輸出黑方格,還是白方格。
4 x9 \& [! G2 b4 @, p2.程序源代碼:
5 A" Z9 P7 m7 L' s#include "stdio.h"
. ^8 s/ r# k# c7 n' R" h$ qmain()
0 E; k7 Y8 M1 J# `{
$ ]: ?3 U3 q( }$ ~) sint i,j; 6 U5 y2 \" l5 C! z6 c# T3 Q9 H
for(i=0;i<8;i++) 5 x7 G7 J8 @4 N2 C( V
{ 7 \. C+ |& r$ W+ J0 ~
for(j=0;j<8;j++)
, z/ i8 I% G  Y, d  D6 A5 hif((i+j)%2==0) 2 O* s  u& }' L! \7 k
printf("%c%c",219,219);
" M3 s6 |1 k% V. s# B$ H' kelse 6 G! O& W& v6 P5 E% k$ s
printf(" "); 7 j  a) j$ G$ h0 N6 U- l
printf("\n"); & O% e# N; F4 R: U! Y, E
}
1 w6 H8 ^3 _( S  R" ]( d}
, g$ w3 ]: b7 D==============================================================
6 M$ H% N4 A6 o5 R% A  ]: f# J: j【程序10! W. L& R9 \+ Z2 }: U' X
題目:打印樓梯,同時在樓梯上方打印兩個笑臉。
1 E0 ]( m- ^# k6 t% j# k, _1.程序分析:用i控制行,j來控制列,j根據i的變化來控制輸出黑方格的個數。
+ ^  L! _. v0 a2 i3 e& z2.程序源代碼:
# `, n4 q) M) R  {: [4 P#include "stdio.h" ( }8 C/ G8 Z% }; Y  Y
main() - M/ t. V- P( j2 ]5 h
{
* m* C8 N  ^9 Xint i,j;
* R# n9 f$ c5 j6 I* Y" A& s% n. Oprintf("\1\1\n");/*輸出兩個笑臉*/   j5 r) v! h3 E7 T2 x3 |+ ]
for(i=1;i<11;i++) 0 j$ i/ k3 [6 s4 C
{ 5 O1 n$ W4 \: Y) G9 M. q& l
for(j=1;j<=i;j++)
7 c- T% Z' Y- Zprintf("%c%c",219,219); 1 R& U8 Z- z: H
printf("\n");
/ A1 S3 X. K: d/ ~" T+ @* _! |} 9 d; f- ^2 ^0 Q" d
} 6 W- F: y/ H' o% D2 e& W. b
( c" @# c8 K$ g& [5 A9 Z

' ]- m$ P. p# j3 I) D1 i. V# Z! X7 \" H% [: \# S: b
作者: zhlei81 2005-1-22 11:29 回復此發言 ; @& y( ^2 C( T; T
. [$ E* a; P# _+ ]+ z
-------------------------------------------------------------------------------- + i7 @' q% ~$ }5 p1 X

+ z( a! V/ d2 S1 |$ f5 T# o3 回復:經典C源程序100
) U9 C( G; @  C5 {5 Y2 |4 k) u【程序11
  `8 k: O& G! b  |6 Q題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月 ( Y. E" ?- c0 m8 P
后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少? + u# K: W+ `/ ^, |' s7 t) M
1.程序分析: 兔子的規律為數列1,1,2,3,5,8,13,21.... * X/ `# R7 e4 i- _5 [+ Z
2.程序源代碼:
' A4 R7 R: N# D; Qmain()
6 w3 J+ a4 C5 R  P{ / M9 [0 i) v& P3 S2 m' [/ ?+ ^
long f1,f2;   u3 p( I; d9 C" k& D
int i;
5 ^# M% X0 k2 n- Pf1=f2=1; : O1 x, w1 P1 g$ B0 k
for(i=1;i<=20;i++)
* w1 t' O5 x/ }. P1 e& j. q{ printf("%12ld %12ld",f1,f2);
1 s) u9 P' _) b, xif(i%2==0) printf("\n");/*控制輸出,每行四個*/ 4 A  r' t* Y% c3 X7 ^. v
f1=f1+f2; /*前兩個月加起來賦值給第三個月*/
) c1 a9 }- _/ Bf2=f1+f2; /*前兩個月加起來賦值給第三個月*/
. ^$ j7 G3 r- G9 `5 h4 G4 |} 1 a- Q) `! @: E! @8 A, o
}
8 I8 s  q% ]; [0 s4 [  h6 p0 `4 b+ [. O============================================================== 6 R2 Z/ s1 ^) J: A
【程序12
" G; T+ V' l9 V0 e題目:判斷101-200之間有多少個素數,并輸出所有素數。
, N9 P+ u$ i9 ?& e$ C' k1.程序分析:判斷素數的方法:用一個數分別去除2sqrt(這個數),如果能被整除, 2 X. L, L$ s* d
則表明此數不是素數,反之是素數。
# u- T* c4 F) {* O9 e! ]) I6 u. d2.程序源代碼:
* W7 t2 A. q6 Q#include "math.h"
! F% C) J$ L% [% {6 ^' C' Xmain() % }8 Z, W$ C$ p
{ 5 C& i; m* E4 p! U' o
int m,i,k,h=0,leap=1;
# j( G+ c2 y# t' Xprintf("\n"); / s2 d8 o/ g$ B* W' j
for(m=101;m<=200;m++)
, v; e% o2 u* R9 Y{ k=sqrt(m+1);
/ m* P+ X3 ?1 {2 l' s. k1 R' Hfor(i=2;i<=k;i++)
' s% d9 k: w' f' Fif(m%i==0) % A1 R- G( I2 n2 D3 K, S! f- E
{leap=0;break;}
5 p) X8 E# e6 i% R& N7 k+ hif(leap) {printf("%-4d",m);h++; . @' D! @: O# ]! n. m5 _% }
if(h%10==0)
# m6 C  O/ R# |2 \; Cprintf("\n"); 0 t2 J* Z9 J% I9 r
}
0 h, v# h9 J8 a) w  Kleap=1; 7 Y& k8 f; k7 K9 B  f/ s) O4 J* t- O
} 5 q9 h9 a0 Y6 `6 K4 ]2 F
printf("\nThe total is %d",h);   T: r# d( |4 e4 N% h8 y6 k
}
/ E; {/ s) |1 y; P============================================================== & V0 e$ n5 o" P" H. ]0 v- \
【程序13
! `" f9 L- `" b9 C1 J" L( i題目:打印出所有的水仙花數,所謂水仙花數是指一個三位數,其各位數字立方和等于該數 0 H* @* s( ]' A% A
本身。例如:153是一個水仙花數,因為153=1的三次方+5的三次方+3的三次方。 + ~; m7 |$ i2 ]( S! N6 A: e- \
1.程序分析:利用for循環控制100-999個數,每個數分解出個位,十位,百位。 $ u7 P3 e2 p  x! B
2.程序源代碼:
+ z0 H7 l' L( w+ H5 J5 H5 d% o4 R' ?main()
3 _! l2 U: L, N+ Z/ L{
+ z: o0 H! `8 i* J4 j) kint i,j,k,n;
/ b" j: N  c( A6 ~printf("'water flower'number is:");
- J3 |4 q9 }, M6 D& bfor(n=100;n<1000;n++)
) x7 r* L4 D8 r: L{
" Y; n: g1 @' W7 a- Y! Si=n/100;/*分解出百位*/ 6 Q& I9 _! N5 A8 C% v
j=n/10%10;/*分解出十位*/ , A2 V: B2 a/ S2 G. F& s) {( X
k=n%10;/*分解出個位*/
& z; d6 j8 S' ]) Z$ B4 ^if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
4 k0 {1 r0 B9 f% M+ C% @' G{ 1 |1 h! F) _1 ]( j+ f
printf("%-5d",n); ' {7 O+ a6 z7 l4 q% V- n) D
} ) [* Q' d) `, Z& [+ ?* H5 R
} 9 V% U0 i0 a0 y' p- g
printf("\n"); ! D9 a4 ?) Z5 S% W
} 8 O5 l! Y$ P# o) Y8 G: e5 G
==============================================================
- D' h, Q! ^1 @7 c) y【程序14; g: Q* ~$ \9 O0 c) H( k
題目:將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5
2 P: D- J5 Y- T1 V$ c9 ~5 ~% H
3 P/ k5 w( Y: i4 q/ d7 b: S程序分析:對n進行分解質因數,應先找到一個最小的質數k,然后按下述步驟完成:
- k  S1 ]; K4 G(1)如果這個質數恰等于n,則說明分解質因數的過程已經結束,打印出即可。 * F. B8 @- E8 y) L+ z3 ^" e
(2)如果n<>k,但n能被k整除,則應打印出k的值,并用n除以k的商,作為新的正整數你n,
6 a! B1 T) b! ?2 V! ~$ f* X- ~) l3 Y重復執行第一步。 % Y0 o/ W( C1 J' E  _  b" r! i/ h8 E" n
(3)如果n不能被k整除,則用k+1作為k的值,重復執行第一步。
; V! N! a9 A9 N9 h6 w) e  H; p* E$ Y9 `2 E& G, l& c
2.程序源代碼:
2 @1 L$ n6 v5 C5 r, C+ g" h/* zheng int is divided yinshu*/ : ^) r$ W9 H" D# w4 U
main()
1 y, L$ _/ `6 G4 y: k& w{ ) m9 D- D) ~" n' B8 S( A/ r
int n,i; $ \, N5 H$ S- Z& j
printf("\nplease input a number:\n"); / o) F* \& g9 p1 ^
scanf("%d",&n);
, I" q* ^5 d" s' [) Y0 Rprintf("%d=",n); 3 Y. @9 c: P+ P  _3 _; H
for(i=2;i<=n;i++) % A% _* n; m$ U2 K, x' h. p% n
{ ) H; i' \2 q2 ~4 J) s
while(n!=i) ( y! g7 {( a3 b3 u
{
+ Y# b( l7 a' x6 o% N4 r. B2 p* ?if(n%i==0)
/ U* P0 W" e  h# Y& j- q* b. i) l{ printf("%d*",i); ' F8 ?: G, w. _% S8 y
n=n/i;
, A  c3 T1 D# Q' V0 W7 l/ f}
5 {2 H5 k7 B2 q* `else
" H) C" G" d4 v" J1 Pbreak; * E0 o2 U, r3 g( S- s( j/ s
} * v0 ]9 l& m  H+ K4 \3 e: F: J
} , r, X6 _5 s) z, e4 H
printf("%d",n);} 6 ?, Z: l" L9 j& |; w
+ w; v, ^) U% T. v) M# l. U
回復

使用道具 舉報

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 | 只看該作者
好東西6 F' R- n! u! m" q; n
回復

使用道具 舉報

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

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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