【程序6
】
1 V4 m# U4 s3 A) x; e! t% }% L題目:用*
號輸出字母C的圖案。
5 p+ k6 A8 s( U+ i1 B4 R1.
程序分析:可先用'*'號在紙上寫出字母C,再分行輸出。 / j3 ? W- ]- J2 {' `$ _8 E
2.
程序源代碼: 2 J. M% [& W$ G" i
#include "stdio.h"
" y# L% ?* O9 _7 bmain() {
7 {. [0 f: X# ?) ^3 K8 P% C- \
printf("Hello C-world!\n");
! g3 N( j8 e) J+ L' N& ?' c
printf(" ****\n");
' H! S1 t ^" O {printf(" *\n");
# Q( m" s9 k y2 F; L
printf(" * \n");
0 M0 r0 ^ V% I4 y/ V6 G& i
printf(" ****\n"); }
. ?8 q1 B! }/ k3 K8 M: z==============================================================
& C) g( F x# `* I; o9 A; S6 [【程序7
】 - \4 {. S. ?3 {: z3 }2 N* p3 l; K5 M
題目:輸出特殊圖案,請在c
環境中運行,看一看,Very Beautiful!
; q: y" v. G5 K) S9 e+ ?& H4 G( v9 I1.
程序分析:字符共有256個。不同字符,圖形不一樣。 ' r4 R/ D) [5 g3 n% {
2.
程序源代碼:
' |! e/ c* l+ m' A- x% M#include "stdio.h"
3 D' v* H/ I& M$ C+ ^9 W1 F
main()
4 @) m/ W5 H" T0 u5 t+ m9 V/ \{
( [" R$ V" ]7 u7 u- Xchar a=176,b=219;
2 ^5 `$ D4 P/ r; |- Y1 L2 y t. p% `
printf("%c%c%c%c%c\n",b,a,a,a,b);
% X( [+ f/ h7 g6 b
printf("%c%c%c%c%c\n",a,b,a,b,a);
+ f$ u9 [5 [. O$ M! A: `; H
printf("%c%c%c%c%c\n",a,a,b,a,a);
2 U+ ^9 @5 P3 l4 d9 Z" X% a Mprintf("%c%c%c%c%c\n",a,b,a,b,a);
8 T1 T$ s1 B! p+ L1 v+ t% [printf("%c%c%c%c%c\n",b,a,a,a,b);}
" n$ W% O+ O6 ^& }/ E/ v0 ~/ [; D==============================================================
5 [' v, @8 a7 b* r( Y( q
【程序8
】
/ c9 \& E$ ~: m9 A題目:輸出9*9
口訣。 - t$ Q( m, u6 S! }* `. S1 _0 d1 R
1.
程序分析:分行與列考慮,共9行9列,i控制行,j控制列。
' o$ t6 b0 ?& a2.
程序源代碼: . d1 @6 j6 p3 A$ D
#include "stdio.h"
; c0 o: J, X- @, I
main()
; w/ y O* [/ M7 n9 a{
0 Y$ R7 `% S( H4 _
int i,j,result;
( b1 o0 k; `( j, @+ Cprintf("\n");
7 r$ O+ f7 y! Hfor (i=1;i<10;i++)
2 ^- d' ~9 b4 _) G4 H! @6 b
{ for(j=1;j<10;j++)
8 d$ Q' |7 X: E8 f
{
- x9 C! V- q( _/ x, F. @5 @
result=i*j;
3 ^7 w+ }9 _, i
printf("%d*%d=%-3d",i,j,result);/*-3d
表示左對齊,占3位*/ 5 f# K) b5 `* I0 u
}
# _; B' k( I* p, v w. W
printf("\n");/*
每一行后換行*/ 2 a0 B& _6 p5 H' ?
}
' \* I3 m# y2 A E; ^
}
: z3 v w Y0 r7 ^$ n, \
==============================================================
0 u. j! n. L& U5 L
【程序9
】
3 S8 X+ ~% }- X& _* _ `4 j7 n, Y題目:要求輸出國際象棋棋盤。 (嵌入式學習企鵝要妖氣嗚嗚吧久零就要)
% M/ u1 K5 o k6 ^
1.
程序分析:用i控制行,j來控制列,根據i+j的和的變化來控制輸出黑方格,還是白方格。 3 [! ]3 L D+ V3 O
2.
程序源代碼: ; \$ D" W0 d% w# ]& R* ?# @' \4 l
#include "stdio.h"
1 p7 G7 {* y$ E& A; ^main()
/ D# V" `6 _1 X( V, T& r' W
{
! U2 S; H( l9 S `: d6 c# l
int i,j;
4 Y6 ?! F2 C& y1 E$ ]/ lfor(i=0;i<8;i++)
8 j# G% Y: V0 {: P* z
{
5 E; E" b5 u1 Z% d4 |( r
for(j=0;j<8;j++)
3 r$ |( P" d4 v6 Pif((i+j)%2==0)
- u7 y. L, `9 q( c
printf("%c%c",219,219);
- f4 T3 }, \% [" z/ B, G. D% Uelse
& Q8 R+ ?# j4 E3 L+ g" S) t$ Wprintf(" ");
/ Y( e! D2 a! Z* N/ e8 C
printf("\n");
. W, k/ u; |- k G& H4 k}
8 q; W7 f$ r8 D" N( K) x
}
# T: h) \9 I! s$ u
==============================================================
3 n0 B' h- |! d: E( O
【程序10
】
& L7 j2 M; y. }5 d4 S& |, g6 Q0 h題目:打印樓梯,同時在樓梯上方打印兩個笑臉。
" ?8 \) l. J5 \1.
程序分析:用i控制行,j來控制列,j根據i的變化來控制輸出黑方格的個數。
8 ]2 Z5 U/ U4 Q! A$ w& P7 S2.
程序源代碼:
0 V! Y z \' j& j/ W#include "stdio.h"
0 J4 l# D7 G% b
main()
' c- `4 ^4 ?$ H9 d) n
{
; |# i; g% o2 G, H/ b
int i,j;
) x. B& r& }. J( c* H3 i, W9 a
printf("\1\1\n");/*
輸出兩個笑臉*/ * c( m1 e$ O: v# e
for(i=1;i<11;i++)
+ j9 `3 ^, }) x0 j1 M{
: d+ G9 U( O5 I4 \4 m% f! F
for(j=1;j<=i;j++)
- m; I% f# {1 g. M+ eprintf("%c%c",219,219);
" d- ]+ z0 d' J5 o3 c3 oprintf("\n");
: j8 C& Z# p; V& f
}
! q0 M6 T! c0 h1 t6 E: @
}
" Y, V2 o; H' r/ ~
- y4 u! s- [& H
: O/ ?: c/ [6 U: @' W3 V! u7 J. [3 c+ o" c4 U
作者: zhlei81 2005-1-22 11:29
回復此發言
" q0 j2 a' o2 Z5 [. M0 _9 I7 W, K5 `0 _$ z6 Q' o, G" L
--------------------------------------------------------------------------------
8 s& i W8 R) @2 u$ F1 _5 [4 g! N3 y4 Z. J6 n( |" Z5 T
3
回復:經典C源程序100例
! r B$ }/ ]& Q/ s! I& V0 Y【程序11
】
+ |& b" L- E6 D題目:古典問題:有一對兔子,從出生后第3
個月起每個月都生一對兔子,小兔子長到第三個月 0 |' H. [2 e) h+ N
后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?
4 R( y0 y) j# U1.
程序分析: 兔子的規律為數列1,1,2,3,5,8,13,21....
5 W3 _! o/ B8 A% \! e2 f2 A, E! ~- h2.
程序源代碼:
" \3 L: Z9 d4 R" I, b7 Cmain()
8 {! ^ t/ c4 y/ _7 _8 m' A" e, r( A
{
. }5 p8 M2 }% S4 }2 e$ {# W' W1 llong f1,f2;
+ i0 a; b; q, o9 e7 M# T
int i;
3 \6 j! I' x8 D6 }
f1=f2=1;
. ? W( i- N t! A/ j2 y7 [$ [" a
for(i=1;i<=20;i++)
; ]& I) N) a" W- m' b
{ printf("%12ld %12ld",f1,f2);
8 \8 I' H$ D0 v6 L& e6 f0 N
if(i%2==0) printf("\n");/*
控制輸出,每行四個*/
2 w) ~2 J4 q- o" Q+ jf1=f1+f2; /*
前兩個月加起來賦值給第三個月*/
+ ^5 l' _( g! i6 B: I0 m: z6 jf2=f1+f2; /*
前兩個月加起來賦值給第三個月*/ 2 N; a* [( D) G
}
3 p" |8 A# r8 }, ^7 I2 @, T}
; Y1 B- ^$ x$ F% d* A==============================================================
8 `5 D; i7 X6 D【程序12
】 - c7 o- u- v) m' T- ]- _( y
題目:判斷101-200
之間有多少個素數,并輸出所有素數。 $ G& ]' Y# h) D, q9 k$ R& I% ]
1.
程序分析:判斷素數的方法:用一個數分別去除2到sqrt(這個數),如果能被整除, : Q# o7 ]3 j& e
則表明此數不是素數,反之是素數。
. ^, \8 `' u$ P9 \2.
程序源代碼:
& q* ~0 h% ?1 r, G#include "math.h"
5 ?. z. g" Y/ a
main()
# z. X' w; o9 Q2 B8 E/ ~0 r
{
6 X' A, ]0 m, s) gint m,i,k,h=0,leap=1;
+ ]5 X. p" y5 ^3 X
printf("\n");
|% H* B; g/ G0 P5 Z2 O# r1 Xfor(m=101;m<=200;m++)
( l5 Q; w; Z6 v{ k=sqrt(m+1);
. K/ g) i8 z' f) R, M) i4 xfor(i=2;i<=k;i++)
" c: E& j1 ~; S6 U6 ~" |
if(m%i==0)
( P2 ?4 M3 y" S% q: _% a u{leap=0;break;}
8 Z8 P2 H4 f4 O4 q+ ?% }. h2 m9 O
if(leap) {printf("%-4d",m);h++;
4 `! y& I$ b" z7 k/ g7 d0 p9 Hif(h%10==0)
0 u7 j% O8 F+ Z8 o* {6 ^3 Kprintf("\n");
% U7 B8 p! N% `( M% L1 S}
6 R! v2 |8 X) ?* L) v6 `
leap=1;
7 s7 t7 \' o+ s" D}
$ V4 g/ {: t5 K0 t7 x
printf("\nThe total is %d",h);
, @, B+ L" N7 N/ C6 U}
/ E" u" k5 @7 {7 w2 k6 L( D==============================================================
1 C) y2 ~1 h, p# l
【程序13
】
1 b& G+ Y9 I6 E3 H題目:打印出所有的“
水仙花數”,所謂“水仙花數”是指一個三位數,其各位數字立方和等于該數
6 j' v( d3 i/ M4 ?" S' [本身。例如:153
是一個“水仙花數”,因為153=1的三次方+5的三次方+3的三次方。
8 g$ j" w% |* S0 g! E! [1.
程序分析:利用for循環控制100-999個數,每個數分解出個位,十位,百位。 5 H0 X: E' W7 s
2.
程序源代碼: , e2 @6 h9 M q' D$ {4 `
main()
! I, m. w- p4 k% I' j) B4 p
{
" F0 i: ]$ U8 ?
int i,j,k,n;
4 N9 i: U' j* H6 [0 g8 p. t7 Wprintf("'water flower'number is:");
6 A" d z$ L5 N/ Zfor(n=100;n<1000;n++)
5 t! l: W7 `& ~- j. O2 B( ]{
. e @ p! Y1 o+ e2 Wi=n/100;/*
分解出百位*/ 5 \4 \$ c. M8 d' g
j=n/10%10;/*
分解出十位*/
1 y; u+ P0 U$ @" b* S0 Y3 T3 }* \k=n%10;/*
分解出個位*/
+ p! ]% K7 r8 D' u1 vif(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
g% m! a! r/ q7 {# Q; s; C' X4 Y
{
( T/ @: H$ h& {$ g8 J9 P' j2 Z
printf("%-5d",n);
* f U6 @2 ?2 \& M5 F5 p}
; V o( J& x5 T}
* G* t* D: |% s$ ~- ^) Wprintf("\n");
/ Y+ S4 k6 [" N}
% j- f1 W, t1 `, w4 M6 E==============================================================
& |1 F- z# |- p4 l4 l; S【程序14
】
' Y u {! C; _8 x0 g題目:將一個正整數分解質因數。例如:輸入90,
打印出90=2*3*3*5。 - |; r, m: X# l* ^! ?1 Z
, {7 \# c( m8 ^2 d程序分析:對n
進行分解質因數,應先找到一個最小的質數k,然后按下述步驟完成:
: [) A0 B2 {# N2 k/ v3 B$ a(1)
如果這個質數恰等于n,則說明分解質因數的過程已經結束,打印出即可。
6 O$ k" p" d& u(2)
如果n<>k,但n能被k整除,則應打印出k的值,并用n除以k的商,作為新的正整數你n, - d1 m1 O v# q
重復執行第一步。 $ I V t+ D, v/ h4 J4 N0 k. T
(3)
如果n不能被k整除,則用k+1作為k的值,重復執行第一步。 0 h' V7 L' F9 v0 P2 c& q; e
9 D: Q3 X7 R! ^6 n3 Q1 ~! {# {/ Z2.
程序源代碼:
9 N+ |2 d/ o- C; d$ u2 }# b/* zheng int is divided yinshu*/
) G' |4 N: r8 ?" U" o' U/ Smain()
2 M9 M. O6 u( Y
{
4 @8 C, m* B3 F% g6 T, P( o6 Zint n,i;
6 ^$ {& T' @4 ?7 \! l. ?
printf("\nplease input a number:\n");
2 K2 M' ^& X Y9 S5 ]scanf("%d",&n);
6 J% D# N5 s5 a0 O/ ^
printf("%d=",n);
7 K2 ~3 z! t5 \, l
for(i=2;i<=n;i++)
U2 j6 N! x! N3 r; A. o; h
{
. `; u2 P, k) \- m( d- ywhile(n!=i)
f( N% `4 i7 F7 |( R6 q( D9 r{
0 A& C+ B9 h3 r) g2 l h, `if(n%i==0)
9 v9 ]8 Q m7 }{ printf("%d*",i);
; h- X. D: b) [n=n/i;
/ c. D& U; x0 v" v9 t}
+ z" s* y2 g2 c( k* G
else
: `; ]$ B2 F( w6 H) \break;
2 w) W1 `& z' S! g; D3 q}
0 S u+ B! C3 J
}
( v6 ~/ k$ K' V. @5 }" d' w# nprintf("%d",n);}
* c2 c, I9 o+ y6 ^8 g. n==============================================================
0 t# _& Q2 O6 B' w8 F
【程序15
】 ( E% t' @+ i p5 l
題目:利用條件運算符的嵌套來完成此題:學習成績>=90
分的同學用A表示,60-89分之間的用B表示, ' ^/ h7 X" A0 J1 H1 U
60
分以下的用C表示。
! G! |0 A" O7 r8 C: g* C1.
程序分析:(a>b)?a:b這是條件運算符的基本例子。
7 }: N: [& e2 k$ T$ G2.
程序源代碼: : Q' g# T, w4 G9 \7 w+ S6 N0 R
main()
, u+ w* k$ g8 J{
( i+ b" f0 Q: Aint score;
+ t- U1 `( B# ~7 W( k h8 @
char grade;
" M* B5 C, T9 l$ w" o
printf("please input a score\n");
2 |/ ]5 J0 H- ^! y6 u' J
scanf("%d",&score);
8 J* u$ `) x6 T4 ^% ygrade=score>=90?'A'

score>=60?'B':'C');
9 e$ e% M% Q7 B V& ?3 W
printf("%d belongs to %c",score,grade);
9 q5 {" j( G! P+ N/ B" z0 t
}
# J: ` M' u. n5 v$ n: f2 \
==============================================================
! K I0 @4 J+ p! s2 G8 j# y( b