|
【程序6 】
) `# `$ I' L: {題目:用* 號輸出字母C的圖案。
7 p! f0 j- L4 _6 A& Z1. 程序分析:可先用'*'號在紙上寫出字母C,再分行輸出。
& f, h! O/ |7 x0 x9 L1 _2. 程序源代碼: 9 D4 g3 N+ j7 l) N0 Q; ~* m
#include "stdio.h" - d, m$ j0 ?& E/ Q
main() {
( M8 A7 `6 p0 _/ |# U1 Eprintf("Hello C-world!\n"); 7 _$ x( R: o7 x6 K
printf(" ****\n"); * y+ f. p& {; ~' o& L" c8 p2 U
printf(" *\n");
# ]) O$ L f; L: L1 i! G9 zprintf(" * \n");
. [" E/ Q) b# S( F1 w& P+ Iprintf(" ****\n"); }
, F- m" Q; e. K& q6 f1 W( b* P============================================================== 2 }: S5 a0 @: \+ z
【程序7 】 9 D! Y4 ]. C% M9 a$ M0 h
題目:輸出特殊圖案,請在c 環(huán)境中運行,看一看,Very Beautiful! - A0 h9 n% y/ R' ~; M
1. 程序分析:字符共有256個。不同字符,圖形不一樣。 * o; Y' M6 ]4 f9 i9 M6 [2 y
2. 程序源代碼:
+ w3 r& \9 w$ U2 p( n#include "stdio.h" . e' A9 K9 c6 K3 J4 k2 Q
main()
1 p! l. _+ j- c3 l2 Q" Q& b{
; |" V0 q& I+ N4 Q; \, c$ Bchar a=176,b=219;
: Y. R8 V( c* O1 Iprintf("%c%c%c%c%c\n",b,a,a,a,b); : E4 B% V/ Y, q: ^( |! p
printf("%c%c%c%c%c\n",a,b,a,b,a);
& p+ I5 m3 F2 R0 g. r/ A: mprintf("%c%c%c%c%c\n",a,a,b,a,a);
9 g- i* q, q3 x7 b4 o" \/ Aprintf("%c%c%c%c%c\n",a,b,a,b,a); # ?, s! M- P/ Q! a
printf("%c%c%c%c%c\n",b,a,a,a,b);}
- u4 Y# ]7 o `9 ?' ]. U. I============================================================== 3 a; E. [' |. X
【程序8 】
! s9 Y% R/ K! H& _題目:輸出9*9 口訣。 $ P$ P- p) y1 `5 B* E
1. 程序分析:分行與列考慮,共9行9列,i控制行,j控制列。 0 e$ S. K2 v0 g+ C5 F
2. 程序源代碼:
; c" x7 K: A% d#include "stdio.h"
3 P' U4 D0 j: O9 pmain() 3 _" R& i9 `9 E) l8 R
{
4 j) h3 `! f8 eint i,j,result;
6 s/ P! [3 ~, ?9 U1 p* B% vprintf("\n");
' P% M8 \1 S/ ]* Z) f* |. J; E9 tfor (i=1;i<10;i++) # v, b( u9 q: P" Q' f) Z
{ for(j=1;j<10;j++) " E7 |' m& f5 m$ [
{ 4 s/ Q2 X1 Z& X: e
result=i*j;
; ?$ `3 q5 W6 ~printf("%d*%d=%-3d",i,j,result);/*-3d 表示左對齊,占3位*/
. ^ k! u$ D9 J}
/ w$ H2 k7 U0 Q9 S, Eprintf("\n");/* 每一行后換行*/ " E* n, v8 v3 z
}
3 `8 d. c$ y `} # r5 E" k) D; e+ K/ [3 u5 `4 q3 n
============================================================== 7 t9 `$ w" a6 z
【程序9 】
5 V! E, ?9 m$ S4 W題目:要求輸出國際象棋棋盤。 (嵌入式學習企鵝要妖氣嗚嗚吧久零就要)
$ V9 A5 \3 o' I$ W1 e1. 程序分析:用i控制行,j來控制列,根據(jù)i+j的和的變化來控制輸出黑方格,還是白方格。
/ J- L6 f2 Z+ I+ c4 i/ {- j1 L2. 程序源代碼:
' |8 L; V d) ~) D$ J#include "stdio.h" & v$ D* X1 J, J
main()
! B% n" J) P" Y* a8 N. z: @7 {{ ' K2 @( y& ]9 Q6 h5 e- L' N' Y9 a6 I
int i,j;
* i9 k' s4 ^3 N$ bfor(i=0;i<8;i++) ' ?& z, d- {! m8 b% b
{ : J( ]; v# a0 I7 j# @0 o' j
for(j=0;j<8;j++) 8 A# q- O* h8 d ?! @1 Q
if((i+j)%2==0) $ W& S% E- i9 E; s% e) c, {
printf("%c%c",219,219);
* B& A' {+ \# G' A# Jelse " P2 w$ e: N' A: w& [. B
printf(" ");
- ^: ^& B" J7 |6 u- M1 v% Sprintf("\n"); 4 I( \0 H. W5 {
} / q0 {7 ?$ {0 ]) Q9 q
}
" W! w' L& [' U9 O5 f. ?) o* u============================================================== " z4 \" Q# T3 N7 |6 ?
【程序10 】
( P- f2 z: {# b* Z7 I H. D題目:打印樓梯,同時在樓梯上方打印兩個笑臉。
" t( h0 A0 B: h- I/ |1 I1. 程序分析:用i控制行,j來控制列,j根據(jù)i的變化來控制輸出黑方格的個數(shù)。 / r) D$ S* j: C7 L. R
2. 程序源代碼: 6 ]' _- a9 ~& a- [- o* M
#include "stdio.h"
1 ^- q0 Y2 L; p! L; M: Z7 ]/ }main() ( n8 C* R, A; I" Z3 G0 E. E* x
{
; j; E$ `% ]& ^2 I& aint i,j; 5 u+ i8 X1 F8 i j$ l* | {
printf("\1\1\n");/* 輸出兩個笑臉*/
, o( I! _; r( _* x- O1 Q Ffor(i=1;i<11;i++) 4 V7 M, X4 z1 \
{
, y7 D$ V# P' G2 T' J W0 vfor(j=1;j<=i;j++) 3 f0 t1 V! V) V1 @* A8 {( c6 x
printf("%c%c",219,219); / g6 S7 b; ~" l. X) P% Z _
printf("\n"); 8 p$ V. _0 C9 e
}
4 N; ^* ]" u! y, Q: x}
' F4 E3 w y; d) o; y
; a9 s2 M/ k' L2 U1 t
8 ~- i0 p$ _- A5 O* l" K3 G& k. Q1 V. g% R
作者: zhlei81 2005-1-22 11:29 回復此發(fā)言
8 k& x2 u @+ H U! `! O0 b' x" |$ h ?+ N7 N
--------------------------------------------------------------------------------
. j. o, w' L. z* z' f# b" O2 a" ]" b: M0 b* L; N" c% n+ |0 e
3 回復:經(jīng)典C源程序100例 : x7 @3 }0 A# o
【程序11 】
& p, f" M {) o題目:古典問題:有一對兔子,從出生后第3 個月起每個月都生一對兔子,小兔子長到第三個月 + T( w: J% h5 U0 ^: x5 X- o
后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數(shù)為多少?
; W1 A. W" g/ ]# M6 {. A1. 程序分析: 兔子的規(guī)律為數(shù)列1,1,2,3,5,8,13,21.... 6 u+ d8 g' Q, U+ q8 o ~: F5 S
2. 程序源代碼: * m- n2 P/ n5 V" v" e
main() 0 L- P' V2 u" l! Z, W9 N y+ ^$ K
{
8 w, \ ]& Y; N9 h$ d( X [4 Klong f1,f2;
f9 }0 W* X- Q2 @0 W9 Bint i;
, b$ u0 J6 h: M. x2 P! k4 Xf1=f2=1; Y r! V" Y; i# j4 ~
for(i=1;i<=20;i++) : n+ J8 b5 R% O
{ printf("%12ld %12ld",f1,f2); 2 L$ x9 \5 ]3 G* v) h
if(i%2==0) printf("\n");/* 控制輸出,每行四個*/ 5 k# j% I2 t- o* b2 L$ c
f1=f1+f2; /* 前兩個月加起來賦值給第三個月*/
* H; n. R* W+ S" F b3 m) D. C5 F6 rf2=f1+f2; /* 前兩個月加起來賦值給第三個月*/ 6 ^; S2 i+ v1 v& Y' N
} 3 o H( X/ `7 E; a- T7 _) s
}
2 m$ _* m8 h+ P) z4 C* J* k4 t============================================================== " |1 G( L/ \" A1 |' w
【程序12 】 7 v0 E. j2 o( ?3 B
題目:判斷101-200 之間有多少個素數(shù),并輸出所有素數(shù)。 4 }: P/ f* q% b/ \3 q
1. 程序分析:判斷素數(shù)的方法:用一個數(shù)分別去除2到sqrt(這個數(shù)),如果能被整除, 3 z+ C( ?# M" a, U
則表明此數(shù)不是素數(shù),反之是素數(shù)。
4 I/ W( ?5 w. _7 o5 {2. 程序源代碼:
4 i9 [5 v. O) {' V' g2 q#include "math.h"
% M; l6 f( x; f N! _main() ( |: F, f; K% T$ `- f. J, o$ o5 h
{
5 b [) z' I& Q( C/ _( P8 Oint m,i,k,h=0,leap=1; % |* C# k# [( J& y6 O
printf("\n"); , @( U" I O8 R4 e
for(m=101;m<=200;m++)
: k2 q% y7 ~$ T" i& y% }& c{ k=sqrt(m+1);
+ r* g. j0 a8 Y7 \- Ifor(i=2;i<=k;i++)
/ b* k7 A' Z: ]; G. i4 v8 Q1 W" ~if(m%i==0)
4 `% }3 [7 m; A" V ~' L, b; t{leap=0;break;}
. p& |7 y8 b4 y% ^if(leap) {printf("%-4d",m);h++;
8 e; _3 y, W7 aif(h%10==0) 6 l5 c" d: N. u3 V" y# t
printf("\n"); # |+ t4 G' |# c. H& F
}
; y; [1 `3 S1 l& W9 D" eleap=1; ; w+ w) w* r. c: X* e
} # F# G* L, \& V2 Y. \$ u }
printf("\nThe total is %d",h);
* ~, x" Q+ T3 }; s& w: r} , p, t* _; P" R; K$ t4 E9 d
==============================================================
, Y: |6 W+ n9 u& s/ F" ?% h【程序13 】 / T* z2 b: L* {
題目:打印出所有的“ 水仙花數(shù)”,所謂“水仙花數(shù)”是指一個三位數(shù),其各位數(shù)字立方和等于該數(shù)
& A6 o R l. F本身。例如:153 是一個“水仙花數(shù)”,因為153=1的三次方+5的三次方+3的三次方。 1 W( D8 [/ Z& @: o" r0 a
1. 程序分析:利用for循環(huán)控制100-999個數(shù),每個數(shù)分解出個位,十位,百位。 ! U& K5 m/ A9 G
2. 程序源代碼:
]# Q' ]( R+ v( K4 C+ w$ @8 \main() 7 a7 }# t$ x) d% e0 b! w
{
" ]& j0 P0 o3 Iint i,j,k,n;
" z* [! S2 o2 Q1 H+ z* d3 bprintf("'water flower'number is:");
M8 w9 s+ m% |9 N2 rfor(n=100;n<1000;n++) B: C9 ^% g$ u! h: y% N* [7 @
{
+ B: w8 T' X8 i- b& ei=n/100;/* 分解出百位*/
1 C8 j! a' L: ^9 @3 `. ]" Z6 }$ W3 \j=n/10%10;/* 分解出十位*/
3 C- u6 m, ^6 S# n7 rk=n%10;/* 分解出個位*/ ' J! s$ V/ F/ B0 R3 A* H
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
9 v1 F* G. d: F1 F; y# L{ : r) n7 D9 _7 C- T: t
printf("%-5d",n); 0 r5 }$ ?+ E5 B# `0 ?
} 0 f- S3 p# K- i3 R2 F
}
: a8 M3 ~- a/ Z" {2 c# Z. }) {0 A! Gprintf("\n"); ; C. x6 e* n4 }+ r+ I
}
3 b1 j4 u) _1 N _============================================================== 7 k- Z: R# J6 p- N+ G2 b# J
【程序14 】
! S/ D8 v ?) m8 X4 C1 C7 U題目:將一個正整數(shù)分解質因數(shù)。例如:輸入90, 打印出90=2*3*3*5。 1 r- s i. z, J
4 l+ m& `# _% Y" I程序分析:對n 進行分解質因數(shù),應先找到一個最小的質數(shù)k,然后按下述步驟完成: & J/ U/ a3 W1 H# U
(1) 如果這個質數(shù)恰等于n,則說明分解質因數(shù)的過程已經(jīng)結束,打印出即可。
( v9 }8 {. ?9 f( P(2) 如果n<>k,但n能被k整除,則應打印出k的值,并用n除以k的商,作為新的正整數(shù)你n, ! y- c9 D% V5 Q6 ^& ?% t
重復執(zhí)行第一步。 8 r) T" g' g: H& n3 K' t
(3) 如果n不能被k整除,則用k+1作為k的值,重復執(zhí)行第一步。 + n8 P) K5 g% A' i
: [) J( B4 ~* }& |5 Y' S/ C! x2. 程序源代碼:
y/ h+ G/ }" M/* zheng int is divided yinshu*/ ! `1 u3 `& t8 n% ^' ]# V* S
main()
: z* `" U$ }! j2 \{
9 E( q( u1 [! |" ^int n,i;
, ~' g d, Y& z4 b0 G2 |" V/ }printf("\nplease input a number:\n"); % S6 D# g. a; f- d' v4 L
scanf("%d",&n);
" l) b" j# F1 T& u/ d9 bprintf("%d=",n);
: }( Z. N# D4 u0 Afor(i=2;i<=n;i++) 9 D1 E+ C4 o: A) a
{ ) x" G3 w( J4 Z5 X+ f
while(n!=i)
q' B. Q% q) B. j1 |6 A4 Q{
5 x+ i/ ?+ [9 o) S) Lif(n%i==0) 3 B: I7 X8 @9 c. z4 I+ Q& x' P
{ printf("%d*",i); ' B$ w& h t6 z: M, j# F6 d6 X
n=n/i;
x1 m5 ], [5 p0 N% e, R} : r* b$ S( a' ?$ L
else
- W4 P5 B+ }0 @. M* N5 H: |break;
i e/ o: E7 M}
5 ^: P/ Q7 Y; A% |7 c( j} 5 ~" W# N1 _: i9 d0 e2 K
printf("%d",n);} 6 C# ]! {2 P; C& n: ^8 p/ t ~
============================================================== & g; O5 P8 q* g5 N; k
【程序15 】
/ |& k7 j B1 g) X4 G題目:利用條件運算符的嵌套來完成此題:學習成績>=90 分的同學用A表示,60-89分之間的用B表示,
7 V5 d- d: D" c" D& N j3 G. U1 d5 _60 分以下的用C表示。
1 _; `4 }; j- X/ ~1. 程序分析:(a>b)?a:b這是條件運算符的基本例子。 4 n( h. o0 A& f0 q5 N
2. 程序源代碼: ! s% v2 D. n/ h4 `2 b$ r4 M) A! Z
main() ) [ P$ E8 ?) b# ]0 }' { \" L
{ 5 K+ L$ F/ I, ~0 ?4 ]
int score;
$ J0 l( W7 W) b) ~4 ?0 {2 |char grade;
& L2 G( M4 @0 Z# d9 b3 Mprintf("please input a score\n");
% U! J$ X4 @6 ?7 Wscanf("%d",&score); ! q2 b' Q. [" f! h& I
grade=score>=90?'A'  score>=60?'B':'C');
3 X" P$ f, ^6 f/ Mprintf("%d belongs to %c",score,grade);
3 v2 K* R+ a8 f" [+ `+ R* W# K} }' a* s" q3 R B5 d
============================================================== 4 E- i2 I( v( h7 ^% E+ z: k9 f
) n1 y6 R- b9 L8 l3 B! F. ^ |
|