|
【程序6 】
! I* O3 b# G3 B: z! L6 H題目:用* 號輸出字母C的圖案。
' n! O! ]! X6 S. m% k, U1. 程序分析:可先用'*'號在紙上寫出字母C,再分行輸出。
+ u: Q" ]% U! B: s* P2. 程序源代碼:
& W6 T. L! J, x9 r8 x* t& ]#include "stdio.h"
5 ^" R; F$ w; Y) bmain() {
) r8 r9 Z7 Q9 ^printf("Hello C-world!\n"); 6 W( q$ R/ l- d$ p/ w! X
printf(" ****\n"); / u' k6 w2 a1 R. Z
printf(" *\n"); - b9 V. ~% j5 }7 I* ^+ K
printf(" * \n"); % f D9 q) _2 p6 H3 m
printf(" ****\n"); }
6 s. g* P9 S1 F# q0 j8 \5 v$ h==============================================================
3 |; N! \- a* Q4 t/ b* l. P【程序7 】 % \) D* }% P) f3 v
題目:輸出特殊圖案,請在c 環境中運行,看一看,Very Beautiful! & P5 M. l6 k5 R" f2 j" N7 T
1. 程序分析:字符共有256個。不同字符,圖形不一樣。 / E. b9 B1 j" Q; f2 p7 ?+ O
2. 程序源代碼:
$ e9 [5 y& o& C/ m#include "stdio.h"
$ {% E$ X. y: [main()
( f6 ]( k# n; L/ N" s) s7 e* Y{
% c S% {; a& @% C1 xchar a=176,b=219; $ g& W/ z6 o: B
printf("%c%c%c%c%c\n",b,a,a,a,b); & ^7 A/ `1 N! d8 r9 P/ U5 U
printf("%c%c%c%c%c\n",a,b,a,b,a);
. A% g! l" a% _- }8 W0 d: Yprintf("%c%c%c%c%c\n",a,a,b,a,a); ( F$ B6 b$ N- r( Q( Y# w! U* i& v
printf("%c%c%c%c%c\n",a,b,a,b,a);
% F- a5 @" [5 x3 Fprintf("%c%c%c%c%c\n",b,a,a,a,b);} ) R+ f2 Z% Q( y. Q, b: T
============================================================== $ H# y* `' c* W! K/ v% j
【程序8 】
9 `" g9 O7 k7 c J* v" _7 P題目:輸出9*9 口訣。 ( ^: G: T" \7 x7 o8 b' @5 s4 l
1. 程序分析:分行與列考慮,共9行9列,i控制行,j控制列。
' [7 C t" o" j. t# H" u/ m2. 程序源代碼:
; ^/ z7 A6 N: \% U' g#include "stdio.h"
& U% P, U3 S% ^/ `1 |main() : m5 M) {% y- X$ q- w. a7 ]
{
6 n0 x. K9 k8 O7 _! i4 L# jint i,j,result; $ Z. C/ V+ Y I4 h" p
printf("\n");
( t X2 u: c% K& S! ~for (i=1;i<10;i++)
& q5 w+ w5 z% I, ?' x{ for(j=1;j<10;j++)
/ C9 Q5 j8 o- Q$ K{
4 p( _/ y% x* l& `; Rresult=i*j;
7 `. m0 u. v( S: e3 @printf("%d*%d=%-3d",i,j,result);/*-3d 表示左對齊,占3位*/
/ v7 t' k% Z% {% M2 p) H4 ~5 z}
& M/ q- I1 F) e6 N, Lprintf("\n");/* 每一行后換行*/ & \ V0 l" z& I x- D
} # p B/ b% E3 ?. x# q, t. v
}
. i2 s) N3 A+ [& O4 T& P9 K============================================================== - O+ u9 N- s* p7 e
【程序9 】
7 o4 L: P; f6 i# ?題目:要求輸出國際象棋棋盤。 (嵌入式學習企鵝要妖氣嗚嗚吧久零就要) 8 B+ v1 \3 g# l
1. 程序分析:用i控制行,j來控制列,根據i+j的和的變化來控制輸出黑方格,還是白方格。
1 r0 I& V! l' d2. 程序源代碼:
! v+ z5 E8 o) I2 K! w1 u2 n#include "stdio.h" ! N# M i! g( `" Y3 E6 |, l
main()
+ k- |8 l% P! M{
) r' i+ \- E+ F3 V' v) Oint i,j;
) q' v0 k5 j- R+ d5 qfor(i=0;i<8;i++)
# P! t* e, f5 h) O8 G{
0 C# @0 v; c$ \& F" e/ K* vfor(j=0;j<8;j++)
+ |% h, x! d# F9 O' d- {if((i+j)%2==0)
0 W. h) ^$ c/ z$ n. O9 C4 E8 P% @printf("%c%c",219,219);
7 O3 d' _, d. t0 qelse 3 P% H# ?7 j5 \
printf(" "); & i5 B( U5 p1 I: e% ]% W
printf("\n");
* Q o1 _, i+ a! A% e6 J}
( ~/ O; u# D$ K) [# J8 ^, h} 9 C7 G0 I- M7 I+ k. B3 _
==============================================================
* I2 s* I& b0 ~7 ^& q0 Z; w【程序10 】 * S: P' N- ^$ j5 D9 _( m! N7 i
題目:打印樓梯,同時在樓梯上方打印兩個笑臉。
: e5 O7 {; b. A% k1. 程序分析:用i控制行,j來控制列,j根據i的變化來控制輸出黑方格的個數。 6 B( S" `* o* |% j4 p' _ k
2. 程序源代碼: & U h! n- ^2 z0 F0 F$ E2 Z
#include "stdio.h"
* L* e' R, ?$ V( ymain()
+ K8 E2 f4 q- B3 | i{ 9 x. G# x. e9 G) i7 m! i8 p
int i,j;
9 q0 P. Y7 [+ y$ @ I& wprintf("\1\1\n");/* 輸出兩個笑臉*/
; x& o( W; @7 J# z& Z, rfor(i=1;i<11;i++) / {; @* b( N! V
{ 0 s4 ?" n: Y, U2 A; \! ]
for(j=1;j<=i;j++)
/ _$ k, R6 v, m, Pprintf("%c%c",219,219);
- m4 m" J8 X( |6 C! G; ] W: u$ \printf("\n"); & x5 m$ z+ X# k8 ]( y/ ?
}
* W! v, y8 V4 |8 W}
' e1 j. E0 _# F3 k% j# A! p6 M, j. O1 w. N6 `
! ^9 _9 j6 x! O0 ^
) E1 Q1 o+ C; E& r) {( B- A* U" X作者: zhlei81 2005-1-22 11:29 回復此發言 6 W1 p6 T( v5 p# J/ J
, C: e. ?- z. _4 I/ R/ ]--------------------------------------------------------------------------------
/ H' v: Z% i0 d. v9 @
- B5 J \7 b! }6 M0 p% {3 回復:經典C源程序100例 # Q6 U% \8 I" Z' C* R7 C
【程序11 】 ; a. ]/ u- t! r7 E, t
題目:古典問題:有一對兔子,從出生后第3 個月起每個月都生一對兔子,小兔子長到第三個月 7 N) _' ]1 W4 l1 O" v1 e
后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少? 4 r* L e+ Q0 v6 A, f
1. 程序分析: 兔子的規律為數列1,1,2,3,5,8,13,21.... + `' Y' l+ N( S' ?
2. 程序源代碼:
7 n9 U) f8 R) h. ?main() 4 ]" J! k. l% X0 X5 W4 ~
{ . p' W; t$ e! v; B8 _7 C! M
long f1,f2;
3 S, j9 T; A# N4 @. G1 Nint i; 3 a. {5 X o" e, _/ t
f1=f2=1;
. S3 t& t- g0 R4 s% [/ ufor(i=1;i<=20;i++) ! Z- C& n# |' s. Q- d, g
{ printf("%12ld %12ld",f1,f2); - ~9 B; d* P3 l! }
if(i%2==0) printf("\n");/* 控制輸出,每行四個*/
7 j/ l' O4 y+ J( Qf1=f1+f2; /* 前兩個月加起來賦值給第三個月*/
+ X* T5 b/ \3 a/ W' Pf2=f1+f2; /* 前兩個月加起來賦值給第三個月*/
0 t' @% E, Z+ r' R}
9 k7 Y* b, h, t1 n) s- Z! s}
, |# V- T3 l; _' f' _============================================================== * r! I! x* B4 c" I9 w& Z/ ?
【程序12 】 3 d, g- w9 \' D% Q& L9 x9 J
題目:判斷101-200 之間有多少個素數,并輸出所有素數。
& u$ T6 X. A g; X1. 程序分析:判斷素數的方法:用一個數分別去除2到sqrt(這個數),如果能被整除,
- b2 b8 P6 u: Y# w則表明此數不是素數,反之是素數。 9 i+ }. i7 l+ L. C% O; x
2. 程序源代碼: ) v* [, k! m/ S, V0 L
#include "math.h" 0 A e* G" B" n9 A4 e
main()
# A6 ?+ v* u, t. j& D{
9 T [% M0 @; vint m,i,k,h=0,leap=1; ! `9 Q, U! |2 N. j' ]
printf("\n");
; ^1 |9 i& {" ^/ k2 ]/ s8 cfor(m=101;m<=200;m++) ' Q Q1 N. E$ j7 U/ i
{ k=sqrt(m+1); ' Q1 j; `- k$ G; l2 A( O9 ]: ]
for(i=2;i<=k;i++)
1 c+ K7 S4 N9 L! r( N+ {if(m%i==0)
% m+ x( r5 t7 H3 @7 S{leap=0;break;}
( i- Z1 F: w# C. ?if(leap) {printf("%-4d",m);h++;
0 L. N+ \: u5 Q' {. `if(h%10==0) + n. g' D0 @. {1 g& q
printf("\n");
6 B- a9 U8 T8 v( U* V}
1 `/ J4 P4 b2 J) S$ T7 I3 a% kleap=1;
. z: f% P. b3 J1 O, b$ ^}
- Q- ~$ W; g% N2 s3 S' \% jprintf("\nThe total is %d",h);
* A6 w" W9 C2 T5 \/ j W6 ]/ C}
+ z/ m5 w; d5 t P4 B* d5 E; i==============================================================
1 t/ g5 l8 j* h2 V3 Q1 I5 [( t【程序13 】 " Z; N4 F6 P: ?) H: P9 A* E
題目:打印出所有的“ 水仙花數”,所謂“水仙花數”是指一個三位數,其各位數字立方和等于該數 0 w8 w5 n- J9 i- C
本身。例如:153 是一個“水仙花數”,因為153=1的三次方+5的三次方+3的三次方。
& X6 L( \1 g8 y1 |1. 程序分析:利用for循環控制100-999個數,每個數分解出個位,十位,百位。 & t% e" N) I5 U" a
2. 程序源代碼:
" N7 M, z$ z9 {8 Vmain()
, j8 T6 p/ ?' e: m{ 2 f2 @9 J. F6 _" }" a- t
int i,j,k,n; ( T' s7 c; G/ H4 B
printf("'water flower'number is:"); : f. R: l E( O* `) n% O- w: }# v
for(n=100;n<1000;n++) t, Q. v: W, e8 f
{
* Z* m X0 {! m* F' ri=n/100;/* 分解出百位*/ + p1 Z1 b& W: z/ \& s$ {# D
j=n/10%10;/* 分解出十位*/ * X8 Z2 a" h9 D) q
k=n%10;/* 分解出個位*/ ( o; R; D3 p7 r" d% I# P* J; T
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) 4 O9 z7 |) ]9 B* i. f$ X! e' k
{ - n' P% ]* \; r& ?8 s5 z2 X) r
printf("%-5d",n); , o4 p7 I1 p2 h. ^1 g3 | z# h% h
}
; D$ j6 m' Q5 c# J8 V- g6 ^} % H/ z, d3 Q9 j2 i! x! W- ^& J
printf("\n"); & t6 S) s% r! O4 M. v& y% b1 W
} ' F1 w1 q" m! f
==============================================================
0 C" D% S! V3 E5 d5 L【程序14 】
/ ^+ e9 ^) S4 ~8 x, ^! ]$ C+ b) D題目:將一個正整數分解質因數。例如:輸入90, 打印出90=2*3*3*5。 " f: i1 k5 h8 t* w1 A$ y) t
3 |. D( Y/ R4 h
程序分析:對n 進行分解質因數,應先找到一個最小的質數k,然后按下述步驟完成: " v( d( s7 |/ q: d2 a( v
(1) 如果這個質數恰等于n,則說明分解質因數的過程已經結束,打印出即可。
$ Q" K5 P0 G& G3 \, e(2) 如果n<>k,但n能被k整除,則應打印出k的值,并用n除以k的商,作為新的正整數你n, # l5 x& X+ T" `
重復執行第一步。
# J$ k3 J& E" k(3) 如果n不能被k整除,則用k+1作為k的值,重復執行第一步。
/ @7 `& C" k( K, U
9 F4 [: X5 S+ c2. 程序源代碼: , [5 [8 ^# L0 v1 U
/* zheng int is divided yinshu*/ . {" Z3 n: Y* L
main() 3 N$ _! X4 j7 `7 N5 V$ u
{ * u* d# V& K4 u% ?5 p
int n,i;
2 n, a$ r! L' D( u! @. Iprintf("\nplease input a number:\n");
# V) A. \1 Y2 P) i) ?' a& mscanf("%d",&n); 1 ]4 j* [, J/ R* m2 K' j. w
printf("%d=",n);
6 @4 K6 g4 B+ g! p1 Qfor(i=2;i<=n;i++) 9 }- `; N9 P* b3 M& E; F
{
2 o% d4 P& L9 t; P3 ?while(n!=i) - V( J: U( e' J6 [: x
{
& Z A# d0 \: V# s9 l0 Zif(n%i==0)
# W& n' N$ Z! O1 B{ printf("%d*",i); + m2 q# X6 S2 ?8 d; e8 |
n=n/i; 2 B+ ]* v' X: i v# Z
} 7 D- z0 o5 J3 D) e5 q/ f ]
else ( w! r9 N1 L- c/ H4 h" e
break;
+ d* h/ R6 {* _% B- H} / v/ e: w2 J0 A; d# e2 j% `
}
+ N3 c5 O- T6 Bprintf("%d",n);} ; i6 k; f1 [7 h6 [- \* X# V4 I
============================================================== ( w$ R' |& X" o: X
【程序15 】 2 z- w2 r( ~. v2 H0 p* d
題目:利用條件運算符的嵌套來完成此題:學習成績>=90 分的同學用A表示,60-89分之間的用B表示,
4 K& v' u- z0 H. w( Z60 分以下的用C表示。 5 t" [. j% |% J. E9 J
1. 程序分析:(a>b)?a:b這是條件運算符的基本例子。
6 w! V0 }/ c& a3 k# p2. 程序源代碼:
; C) b' [ J+ q, Amain()
1 D" }2 }6 p& Z1 F{ + W6 T, Y9 F5 T$ X* h S" B
int score; 2 N5 Q' v' k5 z
char grade; % f5 c) e3 E! Z% s- T J
printf("please input a score\n"); $ `9 ]% {. b# G f1 N% w
scanf("%d",&score); : }# f+ |1 f& t# }7 q* i1 V* f' V/ m
grade=score>=90?'A'  score>=60?'B':'C'); ' r9 ]$ E9 a% L# q: |
printf("%d belongs to %c",score,grade); " B& f, E( l V4 a
}
, x, w. l' f5 v; Z. G8 p- ]1 n============================================================== @/ R$ I! K! |+ f z
. _1 t9 ?* D& \* S+ y. x# h' q
|
|