【程序8】 $ ?# C: E4 b2 F( V6 ]5 Z
題目:輸出9*9口訣,。
& N' j( \" I' L1 b! \1.程序分析:分行與列考慮,共9行9列,,i控制行,,j控制列。
- I2 {4 f6 G) G4 G: F1 r- l2.程序源代碼:
l( o) B' c7 u" h#include "stdio.h" 7 ]9 w! ` z5 D/ V2 k
main() # z8 i* l5 V8 P2 }6 e( b2 D$ `
{ 3 [, q5 i4 G; v1 j/ Y
int i,j,result;
1 O3 ]3 h, ^* B: Y" q/ @printf("\n"); 2 O" K# ]* ^! }
for (i=1;i<10;i++) 5 d) p5 ?, b& o$ b# M* M
{ for(j=1;j<10;j++) ) T) F8 O* M( o! l* a5 l) X
{
+ O7 e% o2 V0 v& z( Oresult=i*j;
% E, s& Y. D) {2 `1 W/ iprintf("%d*%d=%-3d",i,j,result);/*-3d表示左對齊,,占3位*/
# T6 ~; W$ W+ `7 S} : d6 a9 }4 [, j4 o, f, o
printf("\n");/*每一行后換行*/ 3 U1 h: h0 C* d2 S% z4 Z* b4 E
} + o s* _/ n# e) Q
}
) C5 r, Z! y5 F( W/ v" I$ Q! |==============================================================
& ]; [% m5 {" w* t% j5 j% I【程序9】
1 x- e/ N2 Y1 c" A1 K" q9 D題目:要求輸出國際象棋棋盤,。 $ ]: g2 q" o9 Z2 a4 r+ S7 F8 \
1.程序分析:用i控制行,j來控制列,,根據(jù)i+j的和的變化來控制輸出黑方格,,還是白方格。 + b/ \* a, I3 g* Q# x, ?9 S; Z
2.程序源代碼:
8 v0 u+ x y* v" k#include "stdio.h"
8 H3 y( G; ~4 M! I( omain() 9 m/ A* x9 d2 {" D0 z, ?6 X1 p
{ 5 p3 O0 I5 L, Y. o1 H
int i,j; & {" X& R) Y. O) N- |$ G: a
for(i=0;i<8;i++)
! w- p: l5 |5 u- r' O' {{ ( m0 B6 C# r" S# w% ~) W4 g
for(j=0;j<8;j++)
- {# b$ W8 C& h" P) Yif((i+j)%2==0)
" j4 R+ P1 O/ V5 ^2 O5 Rprintf("%c%c",219,219); . Q# G; J$ e" H0 q
else
, r/ S8 D5 h6 D* x* B+ B Pprintf(" "); ) \% R2 K' R- z( a
printf("\n");
/ w* k$ K3 b6 j! I) g" B8 b}
" B5 Z2 v B v& p8 p! d$ U}
) A" I( u. S0 g6 X0 a. c==============================================================
* r- z8 Y% }. |+ |+ a4 Z" _【程序10】
* ]3 T) u: O) n" I題目:打印樓梯,,同時在樓梯上方打印兩個笑臉,。
+ K, a/ q& }3 g( v1.程序分析:用i控制行,j來控制列,,j根據(jù)i的變化來控制輸出黑方格的個數(shù),。 3 H+ u5 p7 Q' i" f1 u0 O' S
2.程序源代碼:
. _6 p0 m: M7 c2 v$ z3 I#include "stdio.h" 2 K7 ?+ _5 C2 P- V4 ?- ~
main()
# T) D7 a! Z6 b" W7 u# }. }/ g{
5 m3 |+ p4 b4 O+ Q8 iint i,j; " H7 v2 x; u* M W( s! c2 B, [& V
printf("\1\1\n");/*輸出兩個笑臉*/
. R' }: v7 H) Y# u% tfor(i=1;i<11;i++) , B2 |& R X& V/ B) n
{
3 w! r3 e/ Z) F: \* D! Y. l3 T; V9 efor(j=1;j<=i;j++)
; T9 t' V% c/ ?. Lprintf("%c%c",219,219); / b4 s& r" i3 q" ]( \$ d" Z
printf("\n"); 4 {1 E0 B d6 g o
} ' ^/ B& v, B$ U1 ^$ F* [+ Z7 ^
}
# ~, w) z5 O& c4 p# K% m ?% \8 f; R5 X- {7 q3 ]$ v
) f" _& d7 N% U! @+ M% Y
4 n& w& X) r. S5 q- D+ W- O I" t作者: zhlei81 2005-1-22 11:29 回復(fù)此發(fā)言
. n3 f* u3 o) s7 ]2 a! V: y: u( Q( v
--------------------------------------------------------------------------------
8 ]- T% c8 v2 `* Y! E! X# A+ m/ r. Y% [6 V0 |
1 a) }: f5 g& x+ H- W8 l3 回復(fù):經(jīng)典C源程序100例 1 F5 j5 D7 M& `0 G1 V& Z
【程序11】 7 Q7 _& k+ p8 x. g# i
題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,,小兔子長到第三個月 5 F& c5 @2 B3 p. [1 i$ G
后每個月又生一對兔子,,假如兔子都不死,問每個月的兔子總數(shù)為多少,? , v4 [7 Q7 v: v A4 k
1.程序分析: 兔子的規(guī)律為數(shù)列1,1,2,3,5,8,13,21.... 0 F$ X3 Q9 S1 _5 q9 v( i
2.程序源代碼:
R3 f; x# D/ W3 k2 r1 A' u7 ~main() : Q* i# A; t& F
{
& U' v; Y: l0 A5 H! f6 L- n4 K! g/ _- Glong f1,f2; " x9 Y8 O( T0 V/ Q% h* ?9 o
int i; * h5 M5 v& \, X3 U. ^0 T' L% I: e
f1=f2=1; 7 b) O3 ]+ A- _+ N
for(i=1;i<=20;i++) 2 E# ?& N; r+ B
{ printf("%12ld %12ld",f1,f2); ) g' ]7 `7 C/ w$ o
if(i%2==0) printf("\n");/*控制輸出,,每行四個*/
Z y2 T+ w" p9 i! Mf1=f1+f2; /*前兩個月加起來賦值給第三個月*/ . Y7 m$ g1 m5 F/ C6 g6 d
f2=f1+f2; /*前兩個月加起來賦值給第三個月*/ ) U+ {( r5 W4 c6 n; d0 H8 b6 {6 h2 g
}
, ?" r1 p* h4 j( h% f' Y, K}
- S9 m4 I- t; b1 \/ z b3 y============================================================== , E6 t2 A. M4 U, _% F
【程序12】
4 u. B+ X8 _0 G4 ]$ I% H. `9 B題目:判斷101-200之間有多少個素數(shù),并輸出所有素數(shù),。
0 h+ l, |7 o4 n8 {" O% g1.程序分析:判斷素數(shù)的方法:用一個數(shù)分別去除2到sqrt(這個數(shù)),,如果能被整除, * }8 `$ Y% G2 {% B( R
則表明此數(shù)不是素數(shù),反之是素數(shù),。 " n' E e) \ j- i6 K! Y8 F3 |' Z' d
2.程序源代碼: 9 y- S& H, r6 ^4 w
#include "math.h" + F) S6 o. p t
main()
$ e: y8 [3 Y9 R/ M8 W{ ' h8 ?% H$ }3 k1 B2 l9 M( ]
int m,i,k,h=0,leap=1; : \4 q: m& w% U+ A& G1 r$ @
printf("\n");
$ T1 S P" k5 r% G" V a- ~) ~8 ^for(m=101;m<=200;m++)
- E0 R2 H" K* D. K1 @/ Z8 o' v# _{ k=sqrt(m+1); 8 K0 T' h+ _% M- T# e! U m
for(i=2;i<=k;i++)
+ w# O C: v+ K: @& f0 }3 wif(m%i==0)
* W' k$ `9 T$ v8 h/ \5 `* m* U5 `0 Y{leap=0;break;}
: ^ p7 s3 u" T5 kif(leap) {printf("%-4d",m);h++; 9 E3 C; v3 H7 ^8 i2 b* x, _; p0 g7 d
if(h%10==0)
$ p2 g1 R! E$ K& R U) Wprintf("\n");
! {. G) I L4 I. L/ E+ S0 A. w" P} 8 G: F2 t8 T1 {- Y, d1 E7 \4 y
leap=1; ( j5 T; ^/ R# F) Y( ?8 l
}
; n j6 C/ [% Q7 u2 oprintf("\nThe total is %d",h);
# \& x Z! A. z/ L} % y2 b( O5 D; N
==============================================================
: J3 f2 e; g, ^8 M4 W3 W, k【程序13】 + v; Q' h# \/ I9 k
題目:打印出所有的“水仙花數(shù)”,,所謂“水仙花數(shù)”是指一個三位數(shù),其各位數(shù)字立方和等于該數(shù) 7 j# C) L9 `8 b- o* ^' v) i
本身,。例如:153是一個“水仙花數(shù)”,,因為153=1的三次方+5的三次方+3的三次方。 ! \7 ?. _9 z& K3 f; \
1.程序分析:利用for循環(huán)控制100-999個數(shù),,每個數(shù)分解出個位,,十位,百位,。
7 `4 z( O7 L/ e r% B2.程序源代碼: D3 g" V& H; L) z$ k! I
main() 7 K2 l0 S4 @0 n; _3 d3 r
{ , \1 G! Z: m9 J* [
int i,j,k,n;
4 h5 {8 y& s, ~: S5 S0 |4 ^printf("'water flower'number is:"); % B! b, F) u% k& b- [; V
for(n=100;n<1000;n++)
% H4 M$ F: ^8 L3 }{
- {: c+ \" k/ bi=n/100;/*分解出百位*/ 8 T0 N0 R1 `" p7 i/ X- S
j=n/10%10;/*分解出十位*/ : c/ a0 l0 [; V" N, x- {' ~
k=n%10;/*分解出個位*/ i# s# B# q* i- b
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
/ E+ d7 A7 ?0 \( e7 S{
$ R9 G! {! b$ m# X: yprintf("%-5d",n);
2 L/ f; h. \- ~) \4 s} % g2 ]+ H+ L# |$ g
} 4 r5 J7 g- @: @1 p" c( v% U
printf("\n");
; @' E7 _) r. U$ P4 K0 r} : [) a0 B* b# H0 @4 U" G
============================================================== 5 A: @1 }# ^+ \. X5 L/ g* N
【程序14】 9 c' @: K# w$ v2 q' K4 y$ Q( ]9 |; h
題目:將一個正整數(shù)分解質(zhì)因數(shù),。例如:輸入90,打印出90=2*3*3*5。
8 E4 R0 L) |4 R: n, x9 S; m5 R* `1 ~3 y, C/ `0 A' O2 o" K
程序分析:對n進行分解質(zhì)因數(shù),,應(yīng)先找到一個最小的質(zhì)數(shù)k,,然后按下述步驟完成:
" r" t$ d: _( c! A% n U(1)如果這個質(zhì)數(shù)恰等于n,則說明分解質(zhì)因數(shù)的過程已經(jīng)結(jié)束,,打印出即可,。
. v' y5 f9 M; R4 z$ @5 T' o(2)如果n<>k,但n能被k整除,,則應(yīng)打印出k的值,,并用n除以k的商,作為新的正整數(shù)你n,
; w" I: G7 T( D: ]3 _) g1 U+ b重復(fù)執(zhí)行第一步。
: I1 X0 G$ \/ u; i: t# x(3)如果n不能被k整除,,則用k+1作為k的值,重復(fù)執(zhí)行第一步,。
2 T" B; y+ J: {7 [( ?0 D g6 B6 P0 C% U" O6 e' Y0 r1 }$ ?% @8 U
2.程序源代碼:
2 {% `2 ?; h% K- ~5 T/* zheng int is divided yinshu*/ + Y( q9 L; k. g9 S2 |
main()
^& O& H: c0 W: g{
# r' s; d; u" |4 w3 _( T; \( mint n,i; % k; N6 y" p+ [: ^
printf("\nplease input a number:\n");
+ l- p' A1 ?& t' Zscanf("%d",&n); 2 D. g, I3 b0 f
printf("%d=",n); ' ~' {" k+ t* ?+ T3 z: D& {
for(i=2;i<=n;i++) 4 o; v) J* ^8 k6 j- ]8 S) G$ r0 c& G
{
- Z6 X! W& p6 H3 b" Q8 Pwhile(n!=i)
" b" O7 ?$ ~! }0 ]) Q{
! o# B, S5 }# D6 b8 O1 xif(n%i==0)
1 W# G* S& `$ Q* F4 b{ printf("%d*",i);
/ i1 ~$ U! t5 \4 m7 Qn=n/i;
! N5 {: E! y- b! Q5 e1 p. C. p} % c* j! @. m; i3 h. u. U0 A. N
else
' M2 r Q) Y+ j/ r0 l" v+ p! kbreak;
! B% C' N6 H* |$ T} ( T. T8 l1 S" J* k& M/ i
}
% w# B1 T B/ m5 W# T, ?% Cprintf("%d",n);} 8 j4 s, H7 T" m5 H: [. }, ^9 y
2 T/ W' f1 Z* \; n |