【程序8】 , ?' [, P# Y$ G9 M+ N
题目:输出9*9口诀。
9 x3 L7 f0 B. j2 a+ D/ t7 f6 M1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。 3 t4 S: \, @# ^8 U
2.程序源代码: ! X4 j+ m# b3 x9 J3 p
#include "stdio.h"
+ ?+ [( {8 l: Y( ] `1 `5 {/ jmain() " I2 f- e p; e' }% A! i
{
( z' G& _6 {. N5 y; \3 k$ zint i,j,result;
5 y( O4 d- N6 o$ Q [8 {printf("\n"); - T9 D$ @$ ^, l. t; J( _ _ p
for (i=1;i<10;i++)
c2 C: i/ C2 }6 ?9 k4 W2 S{ for(j=1;j<10;j++) 4 w% C, j$ j; s( x
{
1 q4 I- z( F) _ ~! Nresult=i*j; . R# Y+ L! {4 [* `6 u
printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/ * h( R0 `1 E0 T' C( U3 _ L. x5 D
}
8 G' R D+ t6 \; B$ u8 L; X7 gprintf("\n");/*每一行后换行*/ 4 g( ~1 M4 K! K- i2 `
}
( ?% S3 D5 H. c1 O! l}
; j0 M6 b4 d' B& h/ i7 m==============================================================
8 v! a% Z2 B) J5 `8 Z( n【程序9】 % B5 y" J6 f, O6 x% z2 s9 o
题目:要求输出国际象棋棋盘。 5 v+ T7 r4 ?, ?: X
1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。 % |7 Q. O3 i2 G4 V$ Y. f
2.程序源代码: " m$ e# \/ i( a8 U/ f0 W6 X
#include "stdio.h" 0 F* c" p. X& b: x' l2 ~
main() 9 R& B# g' T3 d: C/ R& ]; x
{
6 w7 L( W7 N0 P- ~. a) Xint i,j;
0 B# F/ ^3 M! g& lfor(i=0;i<8;i++) ! C! D8 H% Q6 ~) g1 H1 z
{ 9 G) X6 i! O2 E' b
for(j=0;j<8;j++) 4 L# b* m; H2 K, B% b+ J
if((i+j)%2==0)
' U( L3 H8 G9 w2 b& Z: Nprintf("%c%c",219,219);
! @' {7 | H' L" W( l1 lelse 4 s) ^. u# B* r; L* v
printf(" ");
( }4 U8 c9 m* ^1 ?, c2 P- O9 lprintf("\n");
* G, H1 S3 w6 D0 @# w% T' J3 o- `} % I" `$ N! F$ X3 Q
} - `3 }6 @% V/ ~% n
============================================================== ! J0 P9 d8 ]7 G0 M5 z
【程序10】 & H# w- p" D9 J* b( v) Q
题目:打印楼梯,同时在楼梯上方打印两个笑脸。
9 t l# K0 L' z2 b' x6 P1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。
1 G& R. a8 E$ e& G2.程序源代码: " x- s1 H/ F9 n! P3 L9 e
#include "stdio.h" * Y }# j$ u, k0 c1 ^, _$ v- ]
main() 7 Y: R& B' I9 c
{ : {1 v% g, B% J v* P B' s
int i,j;
* j# B# B' ^. R' s% T/ \printf("\1\1\n");/*输出两个笑脸*/ + d3 s2 U- l* A5 U4 z4 `) u
for(i=1;i<11;i++) ' P5 u3 r) N0 S* w% M C
{
; M5 m6 \1 e4 x% g( z) S* Nfor(j=1;j<=i;j++) ! x6 H( W5 Q7 K/ ~4 Z, ^2 N
printf("%c%c",219,219); ' ^3 h! Y8 T3 ^% I" Q+ F; \
printf("\n");
" b% m! A1 k$ h( s- D" k! U- ~} 1 B( H& V9 F$ l8 j9 m+ Y
}
1 f9 X+ A6 {2 B( X2 P
) L+ x4 n2 d0 D p. c$ O% W3 z% S% Y4 J
) R D! I! w3 |$ e+ g作者: zhlei81 2005-1-22 11:29 回复此发言
- q! h) |+ s, Q( g7 A" z0 r& j0 t+ V/ }
--------------------------------------------------------------------------------
. a5 t) I/ W9 `% q2 m+ ?8 t
! |" V# z! h* r! s3 回复:经典C源程序100例
) [% {, d+ \7 s【程序11】 ) X' M- h- O0 P- Q
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月 E) ^; i& d8 ^
后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? " o/ L. @; b* s& w7 n' ]9 u
1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... & G5 C7 H# c4 y" I. A
2.程序源代码: 0 s- Y# p. _+ I. N
main() 6 _$ f0 J4 e4 C. h& B$ @9 g
{ 1 x4 K3 i8 `# a7 k5 K6 _
long f1,f2;
; Y6 {; m! Y0 p; K* b: H: ^int i;
3 }9 a: X5 _1 `& K8 Wf1=f2=1; ; Z# @0 B- g) B! e" d1 c5 W S0 X D
for(i=1;i<=20;i++)
/ D$ L: u0 ]. ]0 ^6 e0 s7 Y/ W{ printf("%12ld %12ld",f1,f2);
/ F5 I1 q& {; Z7 bif(i%2==0) printf("\n");/*控制输出,每行四个*/
4 e3 y' K' \: ?1 j5 I) ff1=f1+f2; /*前两个月加起来赋值给第三个月*/ ; e- T3 H" {, s+ T
f2=f1+f2; /*前两个月加起来赋值给第三个月*/ * c5 j% @1 _. y
}
# y7 D+ ]3 _7 `3 h" W+ G P} / V0 S7 X* D6 j+ a7 H% H
==============================================================
: ?9 J- ?# R' o+ g; i【程序12】 4 d+ \! Z; m5 A7 E( `- Y7 S
题目:判断101-200之间有多少个素数,并输出所有素数。
5 @0 n5 T1 d% j6 m9 |# I- p1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
: s: u4 k6 G) W3 o" p5 K则表明此数不是素数,反之是素数。 ! y2 b4 K6 t- @! e5 m
2.程序源代码: * Y% l3 }- E1 @. @
#include "math.h" ) [% ~: y, x6 ?, u( e* S; ?
main() ) J# [: P3 E% c( F
{
- n4 t; w$ E4 U3 gint m,i,k,h=0,leap=1; 9 }1 b+ g/ f w1 C" F7 X
printf("\n"); 8 t% g5 G! h7 r% s
for(m=101;m<=200;m++) 6 q4 x7 K; ?) X) @; ^3 q4 ^- g
{ k=sqrt(m+1); / t6 k1 n- _* U$ P# P
for(i=2;i<=k;i++) 1 b8 p7 w6 V; z0 X$ C' q
if(m%i==0) ) ^% p7 P4 M5 X
{leap=0;break;}
* i( d# L/ R& P+ ?' [; `2 dif(leap) {printf("%-4d",m);h++;
0 X" I" Y5 w4 W" Q$ oif(h%10==0)
0 _$ c% z- }; y) _2 q7 a# cprintf("\n");
" M# ^) y- ?) ^% \}
) r; d, R. p" X% D) Q9 }4 A) o6 hleap=1;
" ~9 R3 S4 U; c! i}
2 n E1 g) n. Z" V: t9 |( ^printf("\nThe total is %d",h);
) g4 H- R' q$ \" t; X: v" h}
, L9 m8 e( u, l2 Q==============================================================
# W2 g# {! g p+ k. N. E【程序13】 ) ^/ p/ E% ~+ P. G
题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数 * `8 l2 ]$ c; }! _1 |, D
本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。 & h" `+ o$ k7 a3 M' R% |
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 2 x# {4 \5 f$ K7 o O
2.程序源代码: ' Y% R$ \: Q5 \5 }
main()
2 s' L# ?/ i3 y1 e; g{
{1 U( F3 D0 h- [2 U% T* Lint i,j,k,n;
/ V% U/ ^- G6 f6 u) {printf("'water flower'number is:");
( {4 g: _* Z1 ]for(n=100;n<1000;n++)
1 G. u7 v3 k* t8 \9 p: l- h- Z{ 5 x: Q' ?; {- D. J
i=n/100;/*分解出百位*/
+ I' A4 Y4 c" A, Y2 J8 k! v3 aj=n/10%10;/*分解出十位*/ ; |& d. {; J, o( Y9 D
k=n%10;/*分解出个位*/
- V7 K" K6 q( u; b( J: a+ V, Lif(i*100+j*10+k==i*i*i+j*j*j+k*k*k) # }( S& t1 k) D7 L) O6 t! L
{ . {) Z: }8 Q+ N! o* t$ u0 \
printf("%-5d",n); ! c Z/ L' t7 X; I
}
: j% l; M( S* `. \& U. D- H} 3 }) U8 A# G! ^! O" `
printf("\n"); 3 P' ~8 m/ j8 O! ~) z& j7 C2 P
}
) g2 z. O8 G* o# p. Y2 m==============================================================
. C* f* k6 V0 o8 u$ B4 E【程序14】
6 w3 r8 ]8 R# Q! @8 c' `, A题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
/ W. \/ i1 I6 C
+ S: I r L- L程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
$ W( ]; b F+ S# @& b0 R9 }(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 ' |- s1 D# M( z; `( E2 b2 P
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,
" A& P6 U6 E% @9 B重复执行第一步。
9 m% G) K5 H7 g) d) ^% E( R(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
3 r* t) a( g* f, U; P4 h3 \& b7 |9 O
- |! g- r* o4 Y* F) k2.程序源代码: ' b2 F- n& H6 a- `6 \: ?/ |6 k5 m
/* zheng int is divided yinshu*/
; J/ P' e6 m' J% h: ]8 f) Tmain()
3 S; P$ n) T2 S9 l2 F2 y5 {, s{
$ i7 ?* p; o o4 x9 T6 z3 K/ pint n,i;
. h! z# C! O1 C/ V3 ^, B. x1 tprintf("\nplease input a number:\n");
3 `4 C" P6 H7 J% B4 zscanf("%d",&n); / L6 y8 e4 u5 S0 u
printf("%d=",n); & l( P$ r9 s3 A- e K# P
for(i=2;i<=n;i++) . [+ W' s- ]$ A r
{ % t, Z: N# D" [, K Q
while(n!=i) & I2 B% _, k0 e
{ / J& e8 G) b. y. Z' o
if(n%i==0) # y( d# M5 T8 m
{ printf("%d*",i);
1 B7 f8 T) v' Y/ h7 Tn=n/i; 4 f8 l2 ^& i. |) j S5 ~' k
}
8 {0 M" r* i% a2 X# welse ! W6 W6 v y8 c6 F
break;
, X& k" a4 ^- v/ `} 0 y7 B1 b& D3 B8 L; d
}
% g0 |# d7 m: B" u1 ~( N8 Z# Wprintf("%d",n);} 3 W, k+ |: P. n; R8 L$ ~
* \3 V e& O9 t9 p! t
|