【程序6
】
! Q, y" X8 E3 g% f3 H/ J; V題目:用*
號輸出字母C的圖案。
7 O. ^: H1 d! v, l0 ^( L! ~1.
程序分析:可先用'*'號在紙上寫出字母C,再分行輸出。
5 H6 `, c% x; `" i) O0 t8 I2.
程序源代碼:
$ X! U/ l" ?$ P4 J M" U: @# k#include "stdio.h"
( I7 \& t" B8 J; [2 b" v' c
main() {
$ f: s$ e; ^$ J' mprintf("Hello C-world!\n");
" v9 n* B& r3 ]& V5 jprintf(" ****\n");
3 |* {, @2 O V& ]% V J
printf(" *\n");
0 w" `3 F- g8 T) }% w; D& l1 e
printf(" * \n");
" i1 \8 B5 }. [" Qprintf(" ****\n"); }
5 \" i# w- j' K' p. V9 B$ q==============================================================
+ O1 n6 |" L- d; k) x1 A8 l【程序7
】
2 b6 a% o, l0 Z題目:輸出特殊圖案,請在c
環境中運行,看一看,Very Beautiful! 0 X4 u$ G1 X3 K5 p7 N; m- V
1.
程序分析:字符共有256個。不同字符,圖形不一樣。 ) ^ Z6 d3 }4 ^/ j2 T
2.
程序源代碼:
* ?0 N; x x% f! E6 H#include "stdio.h"
4 c& K) N( h" M: {
main()
6 j# g" v( T8 q{
$ X2 G9 Z e/ q: [+ u) Dchar a=176,b=219;
' m" p% `# P7 L5 ~5 n2 B$ x6 j" s
printf("%c%c%c%c%c\n",b,a,a,a,b);
6 K6 c% A1 l9 _" mprintf("%c%c%c%c%c\n",a,b,a,b,a);
: d( m6 _- Y* Z5 o; T- j6 Z+ s
printf("%c%c%c%c%c\n",a,a,b,a,a);
. @# c' A9 B9 p, g( K
printf("%c%c%c%c%c\n",a,b,a,b,a);
3 q; [7 p$ `" ^( L- {" V7 Tprintf("%c%c%c%c%c\n",b,a,a,a,b);}
! E- O4 j3 F, h' W$ {2 j
==============================================================
2 D; k4 y A# D- Q; C+ j4 J【程序8
】 & C& L" F# I1 l% i( t4 R7 ]
題目:輸出9*9
口訣。
X. I6 }5 H3 X1.
程序分析:分行與列考慮,共9行9列,i控制行,j控制列。
9 f6 z W# c) R( Y9 `- L1 P" A8 s5 V2.
程序源代碼: @+ e% S h7 C
#include "stdio.h"
0 X# E! L0 G+ H R/ Jmain()
; w$ V1 j4 G8 e5 Q{
" ^* ^& x5 \/ g( }int i,j,result;
8 ?+ q: f2 V: i- Y) u9 p* q3 O- t8 i
printf("\n");
0 F* ?* W1 ^: l% G9 M* yfor (i=1;i<10;i++)
, }1 {: \! ]& |# D! z+ R5 J( E# K
{ for(j=1;j<10;j++)
4 L. b0 z( U }
{
! ^7 T- _6 h% K1 s% I8 N5 K0 i
result=i*j;
# \: Z- C7 b% j/ h
printf("%d*%d=%-3d",i,j,result);/*-3d
表示左對齊,占3位*/ # o5 A+ v7 p) W
}
! O Q# ]4 s. l0 _ `( Z: k+ t. Q. rprintf("\n");/*
每一行后換行*/
Z; V; ~( ^! v3 i; Y$ d8 q( x" S}
( \6 W. L. g! }& L0 ^, b
}
$ m- i# i* d7 X9 f+ s5 ~( E( M2 X
==============================================================
9 U0 M7 D, j# K, e
【程序9
】
! t# e! m+ t* {0 p題目:要求輸出國際象棋棋盤。 (嵌入式學習企鵝要妖氣嗚嗚吧久零就要)
( b6 k, H% l. @: [" g# k
1.
程序分析:用i控制行,j來控制列,根據i+j的和的變化來控制輸出黑方格,還是白方格。
0 V& E7 u8 [( x* y& q2.
程序源代碼:
) J! `: N/ E0 Q/ L1 t1 B. F#include "stdio.h"
( `$ x# ~$ ?! s, nmain()
/ H# b6 {# ]: i. r1 N8 }2 q: }; r% s
{
% c# z# C4 a% }& o2 I
int i,j;
5 ~( a7 C( |" [) b7 n; _* w9 w
for(i=0;i<8;i++)
. R z' N( U! \) C{
8 @) N+ ]7 x' Y0 l
for(j=0;j<8;j++)
$ l" A2 \/ D9 f hif((i+j)%2==0)
2 {! ^0 U+ T! [" ~2 T) {
printf("%c%c",219,219);
- o1 s" H, ?" P4 R" L0 r
else
, }. E0 x& `6 s7 V0 _printf(" ");
+ K8 B. K. H. b! E' {; z* l: t
printf("\n");
9 T5 Y3 Q: A0 t9 W8 ?}
# V, R( r7 w& z) j4 E: S
}
Q# v+ V `% l
==============================================================
, [# T- S! ?& X【程序10
】 * i( S( I7 G$ e2 t
題目:打印樓梯,同時在樓梯上方打印兩個笑臉。 ( h% y" q$ t7 |
1.
程序分析:用i控制行,j來控制列,j根據i的變化來控制輸出黑方格的個數。
7 O9 S* Y6 o7 z4 t& W; C! G% ~2.
程序源代碼:
( o/ T+ l1 o( t- O3 I#include "stdio.h"
, U+ g. e4 l pmain()
$ H3 \8 `% f8 N% s1 U
{
+ S) g" n" V1 J9 ~& K7 Q9 kint i,j;
# l: ~ ]1 p& _! W0 n- r& l* `- b
printf("\1\1\n");/*
輸出兩個笑臉*/
# ~+ J/ a& m. O& g! vfor(i=1;i<11;i++)
9 a3 r9 k% \8 Q7 N% ?{
_5 O( [+ t* |$ `8 N x
for(j=1;j<=i;j++)
5 W0 ~# B; I( \- V* vprintf("%c%c",219,219);
: R8 k8 d, g# F) O& U% I' A! Q
printf("\n");
/ F9 ^+ W+ U7 C c, D4 M) `, U: Y}
+ {" ?: j+ H1 J. U/ c- r
}
0 f: `$ w" c) p# p
6 U5 O5 e8 K9 F. Z9 e+ M3 @+ s% B" ?9 @7 N
4 m& p7 t" E2 V( g
作者: zhlei81 2005-1-22 11:29
回復此發言 # ?" B3 _$ M0 s" _2 C
% H _) n1 p, [% G, A. p9 v% [: }
--------------------------------------------------------------------------------
4 u7 a/ g* h9 T2 T% \6 `& i1 S0 f' j9 B
3
回復:經典C源程序100例
4 D9 D% P% B4 p$ l( w$ j7 l【程序11
】 & [& ?1 |7 t) w8 j" i! z, J) B! B" U
題目:古典問題:有一對兔子,從出生后第3
個月起每個月都生一對兔子,小兔子長到第三個月
# @* L- M* `9 \0 C+ o% p9 I0 ^后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?
) I4 V. i. J1 n' V- A5 ^5 C1.
程序分析: 兔子的規律為數列1,1,2,3,5,8,13,21.... . B3 u4 q, r# X' O% }& F
2.
程序源代碼:
9 C/ s. k7 H' o6 L% emain()
$ w, k5 Q( K) x9 v+ \: \, F1 C
{
1 E! o" |' E( N. M7 P
long f1,f2;
$ }& g# x# W* \$ Aint i;
2 K! j* T" G7 b% s7 G( C0 Uf1=f2=1;
4 j A2 B' m- s+ [' O$ v
for(i=1;i<=20;i++)
) [$ i7 B0 v* i' r2 c: o1 }{ printf("%12ld %12ld",f1,f2);
2 d) ]5 N' C$ s
if(i%2==0) printf("\n");/*
控制輸出,每行四個*/
! M& t0 ]: Z9 h1 t6 o; pf1=f1+f2; /*
前兩個月加起來賦值給第三個月*/ 6 `: v; ^* {: ~, ^( V+ ]9 t
f2=f1+f2; /*
前兩個月加起來賦值給第三個月*/ 9 c/ f: B8 ~6 q) O- R& E
}
# r# C! m% N G! P0 \+ f& _
}
$ ^$ ]% W( v8 q==============================================================
6 m3 A/ m: a& \5 e7 c【程序12
】 ' U; T; c, A% N* M3 i6 A
題目:判斷101-200
之間有多少個素數,并輸出所有素數。
' e8 N: [2 `2 ?7 v, j' [2 _$ w1.
程序分析:判斷素數的方法:用一個數分別去除2到sqrt(這個數),如果能被整除,
$ C* H* d; f& ?$ W' L. c7 n則表明此數不是素數,反之是素數。
+ j: @7 a9 Z* X& |2.
程序源代碼: % ^% o( L" V* Q6 I8 `" v
#include "math.h"
2 d" g4 S/ d0 ~0 @- s7 C# ~) O# [main()
! X( }" z& O1 i* C* [% l* C
{
- `& b+ t/ a) Y- f# E! a) xint m,i,k,h=0,leap=1;
+ H+ v9 ?' b! A, }- Cprintf("\n");
% J% S" \' N: J; W7 A" ^& w4 Xfor(m=101;m<=200;m++)
, ` r+ E' ^' K+ V& O# o+ P z1 F
{ k=sqrt(m+1);
5 o6 s. I2 y: P# B8 G/ _4 zfor(i=2;i<=k;i++)
6 I0 ?. x4 q5 lif(m%i==0)
. r- U0 G$ ^( \/ J1 p+ ?
{leap=0;break;}
4 e1 T, F' |) T( D+ M! F
if(leap) {printf("%-4d",m);h++;
0 v, [' S4 u! |& f# |if(h%10==0)
5 D i5 A; W7 S, w* t: O$ F
printf("\n");
0 i4 t! O( K1 y6 Y}
8 Z6 `4 H- h5 E3 M" cleap=1;
. ^, H) q! l% h7 ~; w; w; ?7 P
}
9 D9 `* K. j) N( ^printf("\nThe total is %d",h);
5 G+ r/ i' d, O) M1 w6 {3 s& a
}
0 h; D# j; K. _% s& I==============================================================
7 G% s" z% w2 @4 j) A8 k W
【程序13
】
2 Q! q( h6 h- Z$ Y6 o9 l8 s. A$ L9 y題目:打印出所有的“
水仙花數”,所謂“水仙花數”是指一個三位數,其各位數字立方和等于該數 6 O' X- t! f2 L' n/ U
本身。例如:153
是一個“水仙花數”,因為153=1的三次方+5的三次方+3的三次方。
% F0 U" [! M1 y1.
程序分析:利用for循環控制100-999個數,每個數分解出個位,十位,百位。
. Y0 L* f6 T) c3 C4 y2.
程序源代碼:
$ i1 F& B( x7 p2 ^4 imain()
" B% @. h/ t; n" S/ k{
0 j, C3 e5 e# F+ X0 s4 Mint i,j,k,n;
9 k1 [, K h6 k$ }8 K
printf("'water flower'number is:");
* t) o6 {# d: xfor(n=100;n<1000;n++)
; v# b" [" `- u. A: [{
; d: f' z2 j$ Ai=n/100;/*
分解出百位*/
5 d: c I& W, [5 z0 wj=n/10%10;/*
分解出十位*/ 6 \" L* ]; O- w- U8 u
k=n%10;/*
分解出個位*/ ; \5 x5 ^) a2 x2 v x
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
" G# q2 V+ Q1 M. S
{
" g" {4 H3 o. w
printf("%-5d",n);
$ Q7 U' Z( q: g
}
( T! O$ V6 o' |4 u; S* r& r3 C
}
' b9 i& V1 v' V) Xprintf("\n");
- I2 g/ C8 s/ `- \6 F' z; V
}
8 t2 B% Y( n+ z. d! `0 y==============================================================
( Q, m; A, A# B' b
【程序14
】 ' o! p# o6 w& E4 l' D# s* U
題目:將一個正整數分解質因數。例如:輸入90,
打印出90=2*3*3*5。
" H+ I& p/ e' m& Y
5 r+ I! q m' P- B+ Y程序分析:對n
進行分解質因數,應先找到一個最小的質數k,然后按下述步驟完成: ; n2 T) P' g) Y/ @
(1)
如果這個質數恰等于n,則說明分解質因數的過程已經結束,打印出即可。 s1 F' ^* [0 }3 {
(2)
如果n<>k,但n能被k整除,則應打印出k的值,并用n除以k的商,作為新的正整數你n, 3 z! p9 [$ z3 o7 G2 d% V6 X
重復執行第一步。 9 u9 _/ U; Z* S- ]
(3)
如果n不能被k整除,則用k+1作為k的值,重復執行第一步。 " m: F% B* U/ \- J
. q' O' |5 q) Z( G( A- }, A2 C2.
程序源代碼:
! q) |6 U w2 \# S3 {) K$ B/* zheng int is divided yinshu*/
0 p! H) _) k5 {
main()
* a9 ^( u1 g( z6 Q" m/ @1 j6 r
{
) Q5 j) E* ]) Wint n,i;
" I3 _& t$ s9 U5 u+ d
printf("\nplease input a number:\n");
8 p* Y' }0 }* z' Dscanf("%d",&n);
9 p- E7 b- i8 T0 Fprintf("%d=",n);
4 q2 W% g8 i& K @! T1 c, F6 R
for(i=2;i<=n;i++)
, ^- s% f! x4 ]: ?7 W7 E: H5 D
{
) q( b1 z+ I3 V8 |, P& L! {5 A' F5 D
while(n!=i)
& O& S' o# ?0 M' T( Y! R3 I# c{
) _; O/ E, `& @+ O7 W! @
if(n%i==0)
2 t: n4 H: W1 z& r) r{ printf("%d*",i);
6 p* B. J9 C9 i- B* j' @
n=n/i;
+ a/ v) K5 i$ h$ M6 b7 R2 G }
}
) F; J$ \; q" \" H- kelse
7 N) B$ S) W) \
break;
$ ?* x) v1 {2 }. `}
" T" ~3 p4 i& j- O
}
1 w. b/ z6 H$ Y3 M) h* i5 ?& vprintf("%d",n);}
5 q1 ~' i; P" ?' {+ a) @* K. \- t==============================================================
4 r% E) ^; ~* `【程序15
】 , j/ W$ v+ k5 w, Y4 i0 ^* X2 C" {
題目:利用條件運算符的嵌套來完成此題:學習成績>=90
分的同學用A表示,60-89分之間的用B表示, - h) \% s% Y, l6 @/ W
60
分以下的用C表示。
, k. l* t. \5 m6 q: `) O2 K, C1.
程序分析:(a>b)?a:b這是條件運算符的基本例子。 6 e+ M# B8 `5 @* }1 Y* Z* y \
2.
程序源代碼: * F. ?7 Z4 c3 `1 L/ {
main()
/ ^) u8 f5 b' u0 a' E1 R/ o
{
7 R) s6 A# {' L& b0 ^
int score;
' i2 K! |; K, X/ S7 _ \
char grade;
8 D a5 F8 s& d- x9 y
printf("please input a score\n");
: e: A Q7 ~ _# Z* t, A2 M |1 Z- c: A" J
scanf("%d",&score);
: V" U4 O( q/ [4 Y0 ugrade=score>=90?'A'

score>=60?'B':'C');
# Z! V7 [1 e- Y1 G
printf("%d belongs to %c",score,grade);
( }( r* n& L u* w' M}
" C4 ^3 d$ G; ^! M7 k
==============================================================
$ M! v' V) y+ N0 f