【程序8】 # e5 G" B4 t, y, f
题目:输出9*9口诀。 # {$ i7 g" ^+ Y$ L1 V
1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
0 l6 H3 n! V* J# f: v2.程序源代码: 5 u8 A. i& o! m9 a
#include "stdio.h"
% i/ U& ]( A$ n `0 `# r) c9 G$ G4 \8 Dmain() 1 H# n7 P4 E" Q: Y6 Y$ H6 ~% K7 K, L
{
1 T2 F, o: w Y& t- {: gint i,j,result; ; ]& s/ ]9 N9 K# S
printf("\n");
7 j( A7 O- p+ rfor (i=1;i<10;i++) / Y1 R$ v7 ^9 M( E; q
{ for(j=1;j<10;j++) * U4 L2 S+ m% ]0 y$ u
{ & Q/ e4 c' W' l7 t
result=i*j; 1 c* x$ D6 G$ n7 u$ M% m
printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/ 0 b U7 _ c0 @/ t7 \* H
} 5 I! n( H6 l# p
printf("\n");/*每一行后换行*/ 9 A4 `9 K" M* o) L9 T+ G
}
9 P- C3 u, C+ i. r} : @2 o' Z* K) I
============================================================== 2 V% c9 d3 S0 t* N( Y
【程序9】 ; p, v i# f; X- D( Z
题目:要求输出国际象棋棋盘。 ' J# W q6 I7 k+ w/ Q& q
1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。 ( V! M" n1 i- t) P: [& K1 n
2.程序源代码:
U/ \3 I) r9 y5 a: g& G9 `& ~#include "stdio.h" & M+ [9 ^7 F! i3 A/ e! V' @+ a* B
main()
3 E) z4 }8 q) r. N3 q{ 7 ~! i& `0 ?* Y' o
int i,j;
+ y5 P' g$ @8 Xfor(i=0;i<8;i++) 0 {5 P; q! x7 {# L' z. w) _" }
{ 6 g& D! w& k$ s( }" R4 y, a
for(j=0;j<8;j++)
; y: `5 |" p9 H/ g% g6 @, Sif((i+j)%2==0)
2 O% D* K4 n" L# z7 ^printf("%c%c",219,219);
( @- H2 X0 @+ x% G$ X0 O: I$ o+ _else
/ `4 Y, j* l+ iprintf(" "); 4 z) i1 O4 T/ d" w. v6 I
printf("\n");
% a6 m* `& |+ f+ M$ W$ a* J}
& U8 @6 P& ]& E3 C. S5 f4 f} + q' ~1 j" N% k. K2 Y& n) g
==============================================================
( {4 ^( v' h3 c# I+ r【程序10】 & }- g' l1 S( k+ l% V
题目:打印楼梯,同时在楼梯上方打印两个笑脸。
# U; b# ^ o% n" P1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。 . G3 T2 M' c; |/ Y* R7 W2 m
2.程序源代码:
# Q3 P4 v0 }7 ?0 L2 }( {7 p#include "stdio.h" $ A* [- ]; G# X1 @! P0 h1 [
main()
3 B! F9 Y, m9 f1 ^2 `: W{
) W! M$ R% I7 Y% c! mint i,j; 5 ]7 _3 T2 p; T% I3 |& g* B& e. i
printf("\1\1\n");/*输出两个笑脸*/ ) g8 E4 s) a$ W; A- z4 i6 F# t
for(i=1;i<11;i++)
8 b x# Y5 j/ h" V$ n$ j- |( Q; |{
" r) X; \9 C4 Z* p5 t% r6 ?for(j=1;j<=i;j++)
' b# e1 G, \+ l2 B, {: |printf("%c%c",219,219); / z) ~+ F* N+ P0 G6 n- L
printf("\n"); " c" Y _# [9 \
}
' J# x) B d0 T, S% D}
- f7 ]: v; B4 P( U
8 H9 \. J' H4 N/ a
" k) o$ Q: D7 |# s2 E" K, m6 W+ X! V+ U4 y5 C
作者: zhlei81 2005-1-22 11:29 回复此发言
% U4 q% g- L' i5 o; S0 Q/ L
" o, {, X$ {4 d$ U' J5 P$ V, `-------------------------------------------------------------------------------- ) z8 z: T& a7 l% q+ z7 H' N
: [, C1 R! S! P' J3 回复:经典C源程序100例
% U+ m! d# i$ Z7 k【程序11】
. W0 ^7 E' {- }3 B9 S# a$ e题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月
% N2 g9 _" B1 R( t9 l9 h后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
3 c6 l( t: n) _) ~1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... A/ F4 p& @5 h% h o8 R2 l
2.程序源代码:
7 T* e" Q e: q3 U5 H! _) Xmain()
- z# H* o H$ j" ~! k5 M6 D4 o( S{ - p+ ^) u5 m% A" ^6 A8 }
long f1,f2;
+ `: y1 A, w! w+ Uint i; . e, l9 t% ~5 r( o; N1 u
f1=f2=1;
& `+ o8 T) \; j2 }for(i=1;i<=20;i++)
4 N: i0 u, v0 G8 A{ printf("%12ld %12ld",f1,f2); 8 g* n: d! y1 _: L2 w
if(i%2==0) printf("\n");/*控制输出,每行四个*/ K5 n- e K+ ~* B9 L; t* n# u* V
f1=f1+f2; /*前两个月加起来赋值给第三个月*/ / s" b- [7 b# b5 J* T6 k+ V1 Q
f2=f1+f2; /*前两个月加起来赋值给第三个月*/
6 V5 Z C N6 T# }& i}
4 `* ?* j6 \9 g+ c, ]} " u) S* T4 j H/ p9 @! d/ w1 h
============================================================== 2 n$ s1 b1 m& r8 P9 s O4 d
【程序12】 ! E0 g7 L3 D2 E# w+ N
题目:判断101-200之间有多少个素数,并输出所有素数。 . U! c. d& Q# H$ x8 ~& G
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 6 r2 B q* E' c: m5 X! A
则表明此数不是素数,反之是素数。
3 G' x9 G% J1 Y7 c3 E7 U, X; y2.程序源代码: % S& P6 S P' c" K" l7 Y4 I
#include "math.h"
1 K7 f# z5 p1 Y3 pmain()
: X' d0 x' g" c1 e" N" G/ U, O{
* _) F- G, m4 Xint m,i,k,h=0,leap=1; K3 Z9 h3 Q" G8 t+ G) r% H0 F
printf("\n");
3 M, j7 x+ x- |: j h: M( Ifor(m=101;m<=200;m++) C" b- p& \5 r; h7 p) `
{ k=sqrt(m+1); : R, w l) Q. o6 l1 w
for(i=2;i<=k;i++) 9 O3 M" b" k4 @0 G, T' ~/ V+ P
if(m%i==0)
# x: _+ G# h. k{leap=0;break;} ' i T0 l. Q9 ^$ C
if(leap) {printf("%-4d",m);h++; ! N( M$ F0 ~/ O
if(h%10==0)
9 a) _5 _+ H3 f1 C+ l0 x' _5 z! zprintf("\n"); ' L& |6 j% o6 A& A$ _1 s4 p
}
3 f; }# ~8 A+ ~' i, G1 z+ ?leap=1;
% \5 Y2 |+ K( A( W} 9 u, p7 r8 }" H; Q- z- q
printf("\nThe total is %d",h); + B0 C: f2 t% c6 C+ x6 D9 g
}
. u9 c4 Q: } s+ t' m==============================================================
* W$ ?3 e5 U% _, Q; Q【程序13】 9 C/ K# F% C% s6 ^" ~/ F0 X2 o
题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数
/ a. Z, u' ?0 `& {本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。 ( X8 ]( c( ]& I" L' r
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
8 x/ ` X( w3 @) p6 B2.程序源代码:
, T, z6 Q& X3 d2 B, bmain() ) m X8 s) P6 l
{
$ a+ \7 G; @& l/ {0 S. sint i,j,k,n; u3 e6 ]6 T# z& k- w
printf("'water flower'number is:"); 9 O9 U& G3 l1 p* T; R2 u$ h
for(n=100;n<1000;n++) 9 [' C! w2 d% v
{
$ C: Z6 ]7 w9 c$ a6 mi=n/100;/*分解出百位*/
8 _- C/ K) t/ L4 l( U1 x# kj=n/10%10;/*分解出十位*/ ! i- |! h: }& u n
k=n%10;/*分解出个位*/
/ O4 |3 O; }& [& `( V$ l/ k% Uif(i*100+j*10+k==i*i*i+j*j*j+k*k*k) ! q+ c: q( Z G, T" g; _! p8 H$ R7 M
{
4 L+ y$ A0 T! \" v! L/ Bprintf("%-5d",n); & V' A: Z0 o3 }' x
}
/ s' {( ~3 E) D+ F m+ ?' h4 k1 G2 q} }( y2 y! g: J) j# ~' E; b" L0 v
printf("\n");
1 t( Q* s( @8 E1 X4 o! N. a: [+ Z( J}
" ^2 L; p2 J* {$ e( I5 J==============================================================
( U' x: L# r7 q# y. u【程序14】 : o, a5 y' s# D, f5 L; Q" g
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
, q3 [. v) }* Z& v* C7 S+ b+ O9 C/ V& g$ |' |( j& D0 v
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: 7 T, H5 s, D: G p& M7 U
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
& A/ V- n, o! u- W4 N( N(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n, 5 `5 R9 T- r9 a9 E6 f+ S* V
重复执行第一步。
+ |8 {: Q3 j2 b+ p% ?% E+ Q% @(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 / c6 v ?0 ~- q+ G G$ C# m
+ Q. X g; r* R
2.程序源代码: ' t2 L- o. r+ J8 [6 a
/* zheng int is divided yinshu*/ ! F: @/ k+ ^4 L$ z& n7 D
main()
0 j5 Q# G& L9 K2 `5 x) x{ 1 L+ g7 {. r2 R
int n,i;
" b& |, }% u8 l! Pprintf("\nplease input a number:\n"); + @' a4 s9 K: T$ i' ?
scanf("%d",&n); : Q* u& l8 w& w# E3 U ^
printf("%d=",n); & y& f( i ^$ D9 I' S, d" t
for(i=2;i<=n;i++) % {8 U- ?- J2 C+ L
{
( I) P5 b3 F, j& Fwhile(n!=i)
+ w' c8 g* s5 d! {$ N6 f9 R* l{ 9 L4 h7 s# e% w5 D* K
if(n%i==0) + S% K4 D6 j- Y( M
{ printf("%d*",i); & F: l; b9 ]* C" U; [
n=n/i; 2 A% ?7 \4 }5 v
}
( r) w! t0 [4 Z9 B, p [# ?else
+ X+ ~4 O1 w0 r. J& V- Xbreak; 5 j- P; v$ P5 a H( U% @
} - z+ v+ D5 ]$ e* U' Y
}
- J8 t2 |2 M+ g9 cprintf("%d",n);}
' k$ g, B' n9 c* G- f2 A0 Z3 X3 m ) ~! D& Y9 u: T( ?7 D9 j- N
|