【程序6
】
5 K$ g/ f# S3 k5 W2 S5 ?題目:用*
號輸出字母C的圖案,。 d/ U$ Y; [. I% J" y
1.
程序分析:可先用'*'號在紙上寫出字母C,,再分行輸出,。
5 m: [5 o8 Q; Y; }$ q0 `2.
程序源代碼:
4 u8 R) [7 ?# W! c+ B4 H#include "stdio.h"
e) W) y8 W- ~; m' a/ w
main() {
4 u/ l5 h+ c; R- | |4 I9 X( l, kprintf("Hello C-world!\n");
( g: r, h! Z" Y, d" ~1 @ p( o
printf(" ****\n");
( G9 F6 O/ ?: o; K- e1 eprintf(" *\n");
4 V! h9 Z4 i( K4 f7 A |
printf(" * \n");
* y$ b, C- D1 ^ Z2 [printf(" ****\n"); }
: `+ w1 `1 D+ m+ B {
==============================================================
t# B8 w1 N/ l/ D6 I1 ?
【程序7
】
0 z1 I" ]7 Y) |" |題目:輸出特殊圖案,,請在c
環(huán)境中運行,看一看,,Very Beautiful! . L8 L6 Z/ }- ]4 |
1.
程序分析:字符共有256個,。不同字符,圖形不一樣,。
& \+ F( ?3 ~( r. w v2.
程序源代碼: # g4 U3 r0 M& g( v6 d5 Q8 T- L
#include "stdio.h"
: n8 ?4 ?! O* X/ h/ t; d+ Cmain()
6 d' k5 Q$ Y$ l( M6 X) T. I
{
4 Z. m$ ]0 R# t' ^7 E# ?/ j. Y) [9 n
char a=176,b=219;
# j% e8 j' U% S# k% `6 z
printf("%c%c%c%c%c\n",b,a,a,a,b);
) t4 [8 i# ~- ~! S' |4 y' Uprintf("%c%c%c%c%c\n",a,b,a,b,a);
$ M) P9 }' v' B0 ?
printf("%c%c%c%c%c\n",a,a,b,a,a);
1 H% f! Q* J; b( L* L2 S5 c" l/ E
printf("%c%c%c%c%c\n",a,b,a,b,a);
. f9 k5 [6 ^2 x3 @3 Q; ^3 w
printf("%c%c%c%c%c\n",b,a,a,a,b);}
* h' N0 v9 d: j) w! T9 Q2 I
==============================================================
5 d, I0 N6 U+ }: q4 C, ^$ I
【程序8
】 2 c! l: p- C% }) ?" K
題目:輸出9*9
口訣,。
2 h7 Q. i% f5 K5 b+ P1.
程序分析:分行與列考慮,共9行9列,,i控制行,,j控制列。 / M g0 m7 C2 ^# N
2.
程序源代碼:
( H% ^! L: }5 ^0 L#include "stdio.h"
v. Z4 y/ T) m9 |# Y
main()
5 }3 y! @; n' w& f0 K% Z" b# N# `
{
+ w4 S/ i$ [+ v" f" m2 Q
int i,j,result;
( O' ?6 ^# u' W# u! g) Tprintf("\n");
! X4 Z- W% S- w0 Ifor (i=1;i<10;i++)
" t. q* c6 V- Y6 u- f
{ for(j=1;j<10;j++)
5 ?$ \, l: O+ V4 N4 i{
8 {! z4 I% w4 F" Q( Y) S( }result=i*j;
2 h9 v, c' ~& B8 V! h
printf("%d*%d=%-3d",i,j,result);/*-3d
表示左對齊,占3位*/
" e6 o- u8 b4 ?9 S+ q' v; }& r}
- d( z5 m6 E1 ?
printf("\n");/*
每一行后換行*/ ! S+ s: y& o$ X) |5 B% _! g
}
* L! a* m2 T3 m" r
}
: S# y8 M K0 x$ D. C
==============================================================
' j7 e+ j" L. c2 c& d9 E. E【程序9
】 : i4 _3 x) C8 l0 F) R
題目:要求輸出國際象棋棋盤,。 (嵌入式學習企鵝要妖氣嗚嗚吧久零就要)
1 c/ @' V6 J' A; j% `& }& i; E5 @$ }1.
程序分析:用i控制行,,j來控制列,根據(jù)i+j的和的變化來控制輸出黑方格,,還是白方格,。
% O# ` a4 p( G5 @; `) y {2.
程序源代碼: / Z4 Z! u# E# Y0 w1 ~5 R$ E' E$ s
#include "stdio.h"
, R# T6 V( ~, z$ k& R: f4 s. T
main()
0 U9 `* P6 F' J: v3 r) q
{
& E; N7 c7 r# w0 o5 |& ^0 `$ vint i,j;
/ D0 l3 o( L7 u1 | z# s1 Efor(i=0;i<8;i++)
+ ?' E2 t' W% Z
{
" R. _" {# s2 @ l! S' C" l" J) c4 }
for(j=0;j<8;j++)
5 p1 y3 E: \5 t
if((i+j)%2==0)
# ^5 N+ V$ r( F2 xprintf("%c%c",219,219);
! g' U) W3 e' I$ t2 x$ A# N: \% `3 ~
else
( Z; i. ] F: X! `printf(" ");
$ Y. ^# d! B( ?3 T+ a! m
printf("\n");
6 i2 K' U1 W, }% \/ h: T' o}
- R+ q4 O6 x. X9 A
}
, B6 v* S( _2 a! o6 Z# e==============================================================
/ y# e6 x. P/ a3 N1 T* v7 A【程序10
】
& j, r/ N, T x0 @題目:打印樓梯,同時在樓梯上方打印兩個笑臉,。
3 U9 O5 p3 V' c8 d1.
程序分析:用i控制行,,j來控制列,j根據(jù)i的變化來控制輸出黑方格的個數(shù),。
4 o9 _6 I0 h1 X/ y' W" J) j2.
程序源代碼:
; ]6 j1 Z* \9 I, [6 D) w" z#include "stdio.h"
1 K* f$ R) _5 rmain()
" P: s+ U" _% U+ s3 Y$ b8 v9 {{
7 [" \ o# h3 N
int i,j;
- K8 M; E5 \+ l6 b* Uprintf("\1\1\n");/*
輸出兩個笑臉*/
" R! e8 u+ X8 a- S( w6 zfor(i=1;i<11;i++)
/ L; Q' Q7 `2 T: r
{
5 h% J6 @0 D n+ @
for(j=1;j<=i;j++)
6 G# \/ W+ a* }; w( C
printf("%c%c",219,219);
" ^3 {1 H% B b! V! cprintf("\n");
) i/ h3 Y' m1 f/ s% f* J}
$ a* y3 Y; Z3 @6 b6 {5 J}
( t! V% g) D/ ?" B* s
' z# {7 v$ G$ J) s
/ ^% z6 s" v- n9 r; p; Y$ g
+ r6 ^/ N1 q; y/ v9 V
作者: zhlei81 2005-1-22 11:29
回復此發(fā)言 . C( ~# f' L' n0 U5 s
% N5 o. R$ t, M& T3 J
--------------------------------------------------------------------------------
- C2 L& j: ~" a+ V( x4 w. w
1 I `; l3 H) y2 H) {0 r- @- R9 E
3
回復:經(jīng)典C源程序100例 3 s' N' @7 l* `. ?% r
【程序11
】
1 v+ a$ B( z$ ~; D題目:古典問題:有一對兔子,,從出生后第3
個月起每個月都生一對兔子,小兔子長到第三個月
3 ?' R8 s9 f) Q$ w \' f后每個月又生一對兔子,,假如兔子都不死,,問每個月的兔子總數(shù)為多少?
H; e5 S0 R4 f( z1.
程序分析: 兔子的規(guī)律為數(shù)列1,1,2,3,5,8,13,21....
9 V J9 I9 g3 N2.
程序源代碼: 2 }6 X+ f5 g9 q' z% M2 u% B
main()
( u- _. @" x) P7 n4 _: p7 B" a
{
3 H, b( d! v5 o# F5 ilong f1,f2;
U( `3 [4 \. O# O9 d, u
int i;
# k" N+ M: G' Q( A8 [
f1=f2=1;
p1 s. ?6 Z, zfor(i=1;i<=20;i++)
U/ i: a& O/ ~ p( c) N
{ printf("%12ld %12ld",f1,f2);
, X/ V, c2 L! B% F: x _! d, x% mif(i%2==0) printf("\n");/*
控制輸出,,每行四個*/
3 o* {* K) y% D/ A- _ U2 p6 `f1=f1+f2; /*
前兩個月加起來賦值給第三個月*/ , M8 P- ]: G+ V" [: X, ? o1 p
f2=f1+f2; /*
前兩個月加起來賦值給第三個月*/ y* t4 @* a3 A/ L5 Q' K
}
5 d# C. Y/ M5 V9 z2 R}
: M. t8 F2 n( K0 _# w Z7 H==============================================================
8 ]6 N |9 i" i4 ^# O5 i5 w x( b
【程序12
】
$ L9 {" ?8 S4 v( w題目:判斷101-200
之間有多少個素數(shù),,并輸出所有素數(shù)。
% y; q+ a& s8 |2 n, t: g1.
程序分析:判斷素數(shù)的方法:用一個數(shù)分別去除2到sqrt(這個數(shù)),,如果能被整除,
; G% h& F: S: @+ S. J則表明此數(shù)不是素數(shù),,反之是素數(shù),。 $ Y! ]1 I5 W9 H# ~' U5 s+ B+ z
2.
程序源代碼:
* O9 v3 ?% J5 h& B#include "math.h"
* f4 q/ ]: ~2 I* v
main()
8 X$ n2 T. w, Y/ I/ p; w
{
* }+ _0 t9 n6 p. u
int m,i,k,h=0,leap=1;
- C& l; W' _$ I8 e) N3 p
printf("\n");
4 U9 T* `3 O2 n& D. N5 i
for(m=101;m<=200;m++)
' j/ j; v) y8 h7 A9 V+ z0 Y# c
{ k=sqrt(m+1);
2 X# d* k1 R8 E# h2 L3 I6 |: }. E
for(i=2;i<=k;i++)
3 w) K! f5 V$ q9 v- }% E
if(m%i==0)
! N& C) V" A- [+ Q$ c9 S
{leap=0;break;}
7 U% q' P5 _; F2 @- z8 G
if(leap) {printf("%-4d",m);h++;
& k) h3 H8 V' \) \" U& ]; m$ e
if(h%10==0)
$ o! g" o' H8 |( ^" ?7 R: {0 o3 Cprintf("\n");
5 d% [- Y6 p" |' B9 i! _( \8 e}
6 K. n$ ~: H$ m h) n3 xleap=1;
" x, x3 x2 n3 }8 W9 ^* J
}
1 Z$ | o) v, u0 R4 ]printf("\nThe total is %d",h);
8 f6 Q4 S% z1 z7 [0 f- s
}
5 ^6 r- |$ F) `* {4 S- g+ F
==============================================================
5 F+ i! H$ i; k/ y! K, k0 P: y
【程序13
】
0 f( V% z( q: Y! y題目:打印出所有的“
水仙花數(shù)”,所謂“水仙花數(shù)”是指一個三位數(shù),,其各位數(shù)字立方和等于該數(shù) $ d: f/ r% F# U7 z5 T
本身,。例如:153
是一個“水仙花數(shù)”,因為153=1的三次方+5的三次方+3的三次方,。 4 }( g7 d1 ~, j% Z
1.
程序分析:利用for循環(huán)控制100-999個數(shù),,每個數(shù)分解出個位,十位,,百位,。 ' U/ ?7 t* [+ K0 J0 }
2.
程序源代碼: 2 c$ O" t, b1 d7 P
main()
2 l: H/ J) L3 C: I/ M
{
5 f N& j6 A. `7 t
int i,j,k,n;
9 D' f5 K: Z A! Y- i0 n) Tprintf("'water flower'number is:");
, J3 D0 {$ `( E- I Jfor(n=100;n<1000;n++)
3 M5 H( R% w! O* P: E. b4 d0 Q6 P
{
( f. M3 H/ f1 a7 M/ m; q7 O
i=n/100;/*
分解出百位*/
# z3 ? a# L; Y8 c1 n; j! Xj=n/10%10;/*
分解出十位*/
. G3 ^2 V+ \( H: {' h& ~6 ~k=n%10;/*
分解出個位*/ " f( h! \/ p4 K' W ]
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
( b6 d, w" t3 z+ {! w3 s, u{
& P+ |) m/ k& [) Qprintf("%-5d",n);
1 A9 W" ^9 \( d/ q) t0 c
}
/ P$ \6 z0 \+ L: B; O. Q/ Z}
# H2 {8 [. l4 B5 x* e0 Q
printf("\n");
3 X" e: `1 y$ T3 e% R& i
}
& g- E4 _- c3 d2 ] I: T1 l$ \
==============================================================
9 S$ |8 |. H1 }2 j5 E$ R【程序14
】 - k: Y t o. ^# U3 y0 z
題目:將一個正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,
打印出90=2*3*3*5,。
) T: Q" A" p$ N; s0 E, ~. T6 |4 `% d- j7 d) W
程序分析:對n
進行分解質(zhì)因數(shù),,應先找到一個最小的質(zhì)數(shù)k,然后按下述步驟完成: 8 a% `9 o. t @$ G+ W! J5 I( U
(1)
如果這個質(zhì)數(shù)恰等于n,,則說明分解質(zhì)因數(shù)的過程已經(jīng)結(jié)束,,打印出即可。
7 ~# p& ?+ Q) R/ y; D* o, {5 ~. C(2)
如果n<>k,但n能被k整除,,則應打印出k的值,,并用n除以k的商,作為新的正整數(shù)你n,
w6 H4 Q, b( E; p重復執(zhí)行第一步。 4 q4 B* l2 N u6 ?, A
(3)
如果n不能被k整除,,則用k+1作為k的值,重復執(zhí)行第一步,。 : U N* `2 u5 ?% r& @8 z: B
$ [5 n, a l- j" ]7 i) d! {- B2.
程序源代碼: - r+ \ k1 w: u' j
/* zheng int is divided yinshu*/
, ]% P" u% {! F+ t# F+ z8 O
main()
" q+ D! p7 b2 u( S1 I# m
{
; b9 D( i% m9 k: \. m aint n,i;
. n; `) o0 b% m# C3 Q. Y* u& v. t9 Sprintf("\nplease input a number:\n");
& V( V) N7 Q7 p, v3 C/ x4 S1 Hscanf("%d",&n);
4 |3 R4 i& q# R. z' }printf("%d=",n);
6 ]6 h: O8 Y, N7 c" K
for(i=2;i<=n;i++)
( l6 Y& h* U& R! o- r5 E. {- u1 ~{
0 Y2 \4 b" k6 C
while(n!=i)
. X- C6 I( s# _" V{
8 p2 o3 a& S( b; f8 wif(n%i==0)
" \( e$ x3 f: }+ {! ~6 d0 i{ printf("%d*",i);
- p( X: X: _5 j3 F: L
n=n/i;
/ d$ Z; B) P/ t6 m
}
+ [2 R1 M( L4 o7 b+ r! V" X% |
else
2 H: {, R$ l/ o; F) }) Hbreak;
g+ Y9 J/ b' K4 b7 f% G5 P# H
}
. E) V$ y5 C' e! O8 @/ H
}
9 [5 p1 }( f- r# v1 i, A
printf("%d",n);}
7 K, B) E4 e1 A- ^9 O8 t2 w$ l
==============================================================
8 Q4 k" Y. B7 c) m* T+ D
【程序15
】 & ^ n& j7 b, A: Y
題目:利用條件運算符的嵌套來完成此題:學習成績>=90
分的同學用A表示,60-89分之間的用B表示,, 5 q0 E( W9 b' G w; c' K
60
分以下的用C表示,。 4 u: @9 A$ s) I7 z' V7 j' g
1.
程序分析:(a>b)?a:b這是條件運算符的基本例子。 5 _% k3 j) ~/ s; ]) G" ]
2.
程序源代碼:
9 w+ F8 ]% h2 Gmain()
/ D7 Q9 ^5 R- r6 K" J) r" i{
: [ F7 ~/ P' E5 p7 g$ F
int score;
$ [) m7 t8 ]4 x+ G. z- Vchar grade;
- c1 k6 Q X0 \" Y+ m( f3 h" g0 Gprintf("please input a score\n");
" n; n3 z1 s0 b' N% ~
scanf("%d",&score);
; a+ p" P0 G+ W, E4 ~3 E
grade=score>=90?'A'

score>=60?'B':'C');
4 s1 H/ O" C# G1 E- L* A0 z
printf("%d belongs to %c",score,grade);
+ d9 R) F% d8 m' j* ^}
' P1 S; S6 f8 j9 @+ q==============================================================
! S7 ] K0 |, q6 Q8 V6 P