|
【程序6 】
5 y0 N5 `0 O1 t8 q) W% |7 u題目:用* 號(hào)輸出字母C的圖案,。
" b+ P# X. P3 ?! L) p! o4 c1. 程序分析:可先用'*'號(hào)在紙上寫出字母C,,再分行輸出,。
' Y E3 a! A' N! A0 Q) V2. 程序源代碼:
, _9 j! S O: m' N: E1 ]) t#include "stdio.h" " S- }( a" f H
main() {
5 c' ?% I3 q, a6 D# I* a( Hprintf("Hello C-world!\n"); 9 A' g0 J& Z7 A0 ?7 @
printf(" ****\n"); $ X" R( |+ D7 C& d+ ]
printf(" *\n");
3 W7 n0 {* R1 \% fprintf(" * \n"); $ w$ z" d6 X3 w; R& X# A
printf(" ****\n"); }
8 K4 N3 b/ W3 B3 S============================================================== # g; b( ~5 a7 @' |2 x5 D' O) o d
【程序7 】 6 [1 s& g, Q5 d) M# W0 b
題目:輸出特殊圖案,,請(qǐng)?jiān)?/font>c環(huán)境中運(yùn)行,,看一看,,Very Beautiful!
: A# x5 J5 L# l1.程序分析:字符共有256個(gè),。不同字符,,圖形不一樣。
+ [" }4 G6 ]4 H$ q5 n' m7 s; W2.程序源代碼:
, |" V0 f; X- P6 t s7 }#include "stdio.h" + `/ n$ x$ i/ V, f- I
main()
! g$ G% n! m0 J7 R{ 1 J4 T) h$ S o/ m# i
char a=176,b=219; + J0 e3 Y7 H/ K1 t6 y5 [ A) R5 b4 v
printf("%c%c%c%c%c\n",b,a,a,a,b);
6 x% [! j( ]; Q9 I v5 A; t$ gprintf("%c%c%c%c%c\n",a,b,a,b,a); 0 u( S+ |! O; g3 F) ?) y6 ]
printf("%c%c%c%c%c\n",a,a,b,a,a);
& K2 ^ d! t& O( u! `' `. jprintf("%c%c%c%c%c\n",a,b,a,b,a);
$ O" s' W" n- b* H( [* Qprintf("%c%c%c%c%c\n",b,a,a,a,b);} ' x( a; E5 `9 i4 o, }# _( q
==============================================================
/ T8 I4 H) f) f/ q3 h- [【程序8】 + x8 w A0 ] O+ G1 j7 o
題目:輸出9*9口訣,。
2 K2 p/ A7 Q7 M0 @( ^% D. E4 }1.程序分析:分行與列考慮,,共9行9列,,i控制行,j控制列,。 + y, r1 O" l+ t$ _3 W/ T1 A
2.程序源代碼:
" h; L9 ?$ a! }! T! [#include "stdio.h"
& B8 Z9 J8 o( Tmain() * Z4 R1 C/ l8 a3 {+ B. `
{
) w' k& X+ d' M, f* K3 [$ S: uint i,j,result; ( @9 m" u1 `$ V+ [: T M
printf("\n");
( o3 [5 m0 M1 v6 _for (i=1;i<10;i++)
I; Y7 `! k- y% P" s! Y{ for(j=1;j<10;j++)
9 \) L. P0 g( [8 s5 D* k{ * b5 o4 E. J' S1 v9 |: t
result=i*j; # t* [) d B( h! N0 y! ]
printf("%d*%d=%-3d",i,j,result);/*-3d表示左對(duì)齊,,占3位*/
; K2 ^" g4 I0 B1 l S}
7 t: e; N8 u, ^9 ~7 Pprintf("\n");/*每一行后換行*/ * k) K0 m* c4 Z. R: q3 q/ O
}
) Q8 N$ g0 W$ q} 7 H9 N, M8 x- O0 a' }
==============================================================
+ X& \) l9 _* o1 ?% m+ @! O【程序9】 0 L5 l2 p/ i; q
題目:要求輸出國(guó)際象棋棋盤。 (嵌入式學(xué)習(xí)企鵝要妖氣嗚嗚吧久零就要)1 E9 J9 g) l$ O2 X
1.程序分析:用i控制行,,j來(lái)控制列,,根據(jù)i+j的和的變化來(lái)控制輸出黑方格,還是白方格,。 " U1 V, G) m$ [; v& D8 \
2.程序源代碼:
" i( _: i- g: |" h1 X+ i#include "stdio.h"
: V, s; C, [6 P2 g! _7 `4 x }main()
2 Z8 B0 f8 V. B% q4 h) U{
R/ e5 K! J% \- |# ~int i,j;
! |( L' [3 L6 ~$ G) a2 m' _for(i=0;i<8;i++)
* m" t3 p0 R6 b{ , D; u& j1 L, X# W6 M
for(j=0;j<8;j++)
G8 X' L% H$ o! Bif((i+j)%2==0)
1 `, i" \. H) U* D7 ]' @: X, X% p9 eprintf("%c%c",219,219);
\7 m3 T$ O5 F, P0 N n! z2 Relse : Z( ?+ ]! g0 o6 [( g( p; ~
printf(" "); 6 c; g8 z# q1 p/ h5 w$ e
printf("\n"); % o# K9 S+ f6 q; T
} - {+ Z* G& S- t4 O7 }
} ' B! V! V0 i) Q% P5 A# w" K3 w
==============================================================
: N7 ` b0 `/ u% i1 p! S, Q【程序10】
4 X% {, x* O1 Z題目:打印樓梯,,同時(shí)在樓梯上方打印兩個(gè)笑臉。
8 ]% K: P* Y. V3 _; E. l: @7 Z1.程序分析:用i控制行,,j來(lái)控制列,,j根據(jù)i的變化來(lái)控制輸出黑方格的個(gè)數(shù)。
7 p: X G" {0 c2.程序源代碼:
4 l6 X6 Q1 F$ G3 ]3 C#include "stdio.h"
' Z$ Q1 r5 K4 y7 X% Q: wmain() ' x. ]" b l! f/ r) ^
{ 8 B* }2 j( [4 R" Y2 k. c
int i,j; 3 I0 j D6 \! x
printf("\1\1\n");/*輸出兩個(gè)笑臉*/
0 t% F& T E7 ^8 q/ efor(i=1;i<11;i++)
. N1 P- \$ w6 i( ?) d7 a# r{
' u* U3 F/ ?* k* P& dfor(j=1;j<=i;j++)
" O1 \8 q$ v4 I1 H H A5 Dprintf("%c%c",219,219); + ], }' }; p0 E4 B$ E
printf("\n"); / a4 g2 Z4 @. n' ?( n. Q! n
}
I/ j9 w: k' n" R( L+ v- P} ( W7 D$ |. e* y( d3 \8 l
5 r6 V. N3 J& @/ k5 d0 L ?5 c* c4 a& B9 h; Y9 D9 p B
6 R# |6 @; p; D- q: q: e作者: zhlei81 2005-1-22 11:29 回復(fù)此發(fā)言
) m# f2 K) m! @( s1 A x( e4 V- n: }7 B, Z$ c s. I7 G# e
--------------------------------------------------------------------------------
- `9 e: @. ~. e e3 r% W$ V! |# _0 a, W$ h# S7 v6 P
3 回復(fù):經(jīng)典C源程序100例 , l q* t: n7 m4 E$ |$ C
【程序11】
0 U& n3 b4 i `, U, B6 Z" P題目:古典問(wèn)題:有一對(duì)兔子,,從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子,,小兔子長(zhǎng)到第三個(gè)月
# B3 }* a/ d% [0 i后每個(gè)月又生一對(duì)兔子,,假如兔子都不死,,問(wèn)每個(gè)月的兔子總數(shù)為多少? 2 U& _& j7 Q6 [, X& C3 E7 ?
1.程序分析: 兔子的規(guī)律為數(shù)列1,1,2,3,5,8,13,21.... ! F! |$ M$ x1 s# |& J8 J
2.程序源代碼: ; B7 K1 D) V9 ]; q6 P
main() ( Y( f* M8 x, |6 b; L9 v
{
7 F# @. l. m4 rlong f1,f2; : t' _+ |8 D; f* N6 a8 ~+ b2 k
int i; 5 T: j8 u; e+ U. p+ e* ?) ~
f1=f2=1; ) [. @0 { G, h! R8 _2 U( B
for(i=1;i<=20;i++) 6 l5 I4 W/ r* Q7 W0 J
{ printf("%12ld %12ld",f1,f2);
* @; y% i6 K, w; u, C+ @* L0 Gif(i%2==0) printf("\n");/*控制輸出,,每行四個(gè)*/
1 C. X- ?* \$ Z, P% @. L& tf1=f1+f2; /*前兩個(gè)月加起來(lái)賦值給第三個(gè)月*/
1 B) @; K) e6 ]3 `& k% ff2=f1+f2; /*前兩個(gè)月加起來(lái)賦值給第三個(gè)月*/ ' N: u' Q2 D* J0 C
} 3 l e3 d: t. t, Z+ ?
}
# j( w# x4 m' a6 }6 z) Y==============================================================
8 n' g q- K9 P【程序12】
1 R; N7 D' K/ |; y4 W' F) c題目:判斷101-200之間有多少個(gè)素?cái)?shù),,并輸出所有素?cái)?shù)。
0 T& K9 s, Z, H( o1.程序分析:判斷素?cái)?shù)的方法:用一個(gè)數(shù)分別去除2到sqrt(這個(gè)數(shù)),,如果能被整除,, ) K' ^" u5 e" t+ ?% ~
則表明此數(shù)不是素?cái)?shù),反之是素?cái)?shù),。 8 y/ T7 d3 H2 V- j
2.程序源代碼: . Z3 b) i/ N2 \0 r
#include "math.h"
- [* g/ v B6 Gmain()
4 y5 X/ P" Y% s{
% T& I. a! K: o9 i0 G% C0 L. \int m,i,k,h=0,leap=1; 4 f; k! {' _4 k& l0 {6 u
printf("\n");
' T' ~# P; n% o8 `6 ?for(m=101;m<=200;m++) 8 q7 n( r# v$ n( p
{ k=sqrt(m+1); ; t& }# t: Y3 Y
for(i=2;i<=k;i++)
! {" [7 \6 b! _" vif(m%i==0) ( o1 }9 Y. y7 \2 L! Q
{leap=0;break;}
( q0 R, k, \2 T6 uif(leap) {printf("%-4d",m);h++; 8 y7 v1 z' W- a5 q, T/ {/ G. k
if(h%10==0)
! |0 T H9 u) H4 @ L3 e& D! xprintf("\n"); : p+ T. Z7 Y- s7 P& e
} % ]) a T0 U- H. i6 _ S) u- B
leap=1; : X$ _, g) Q8 `' l( _" ]7 c( [
}
6 }! F$ t$ T3 P/ j& p0 m6 Qprintf("\nThe total is %d",h); S' I& S5 j6 C
}
! U' N: `- p' V/ u; y: q+ ~$ [==============================================================
& C3 h% M$ a7 q2 G% l K【程序13】 . b# |! J/ }' ?0 b
題目:打印出所有的“水仙花數(shù)”,,所謂“水仙花數(shù)”是指一個(gè)三位數(shù),其各位數(shù)字立方和等于該數(shù)
1 X9 |! n% E+ h$ I本身,。例如:153是一個(gè)“水仙花數(shù)”,,因?yàn)?/font>153=1的三次方+5的三次方+3的三次方。 $ c! H3 l3 k! L
1.程序分析:利用for循環(huán)控制100-999個(gè)數(shù),,每個(gè)數(shù)分解出個(gè)位,,十位,百位,。 ' h- s( K& Z# a8 q6 i4 T
2.程序源代碼: ; T/ b! }5 e9 {! G
main() ! r8 |. s! ^3 C/ e& `
{ 1 b- y! ]2 M* }
int i,j,k,n; 2 W" m0 q. d) `9 l
printf("'water flower'number is:");
3 c. J# _$ G' k* v( k9 I% R7 ^for(n=100;n<1000;n++)
4 q2 Q8 g+ }$ [ p4 t{
% ?$ _( E& A( M& Xi=n/100;/*分解出百位*/ ) Z$ m, u. O w( g7 r) k
j=n/10%10;/*分解出十位*/ 4 P; |0 L% g! }: S( y! m Q
k=n%10;/*分解出個(gè)位*/ 6 }6 y0 x; G9 b2 u6 X* b A
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) ! n5 G/ D+ w# `* K* \4 \
{
, U$ E8 r$ _, b5 |printf("%-5d",n);
9 y! Z/ a2 f8 \} $ U' }* {/ b: b! ~
}
# E# ?9 J6 A1 W6 vprintf("\n");
/ V. F# a& w9 n1 {* m4 Y ^8 x} 2 _& u7 {8 ~* x; _6 r
============================================================== ( R$ b; a/ y5 @! O6 \
【程序14】 # l5 f; H( [& M
題目:將一個(gè)正整數(shù)分解質(zhì)因數(shù),。例如:輸入90,打印出90=2*3*3*5。 % L/ q! Z! X) x) B2 X7 N- ?' D" M
$ ?% p2 Y* i8 _. q+ l8 I ]' S. u
程序分析:對(duì)n進(jìn)行分解質(zhì)因數(shù),,應(yīng)先找到一個(gè)最小的質(zhì)數(shù)k,,然后按下述步驟完成: & i$ x' R" d: b( o( x) P
(1)如果這個(gè)質(zhì)數(shù)恰等于n,,則說(shuō)明分解質(zhì)因數(shù)的過(guò)程已經(jīng)結(jié)束,打印出即可,。 4 g5 S; [# t; O+ Q9 r
(2)如果n<>k,,但n能被k整除,則應(yīng)打印出k的值,,并用n除以k的商,作為新的正整數(shù)你n,
9 o# B% g* ?) S( }- v重復(fù)執(zhí)行第一步,。 6 \. V( L- E; U
(3)如果n不能被k整除,則用k+1作為k的值,重復(fù)執(zhí)行第一步,。 $ m9 F) F5 Y/ O: p6 j; }# E4 }
) U! N/ _- n9 b2.程序源代碼: : X" d7 P1 |* h0 ^! x1 f8 k
/* zheng int is divided yinshu*/
$ Z5 F( i5 a% y5 _% fmain()
1 V" G* d7 J+ q6 }$ Q0 j9 [{
. E8 ?! D2 D, p3 p J. O# G; I' [3 tint n,i;
3 m! Y7 X# w9 J7 I( bprintf("\nplease input a number:\n");
" B: O* {: V, ?1 q1 w+ iscanf("%d",&n); - X6 J) H# y3 }
printf("%d=",n);
$ A3 Z V: b0 @" r* n2 v6 n2 Rfor(i=2;i<=n;i++)
! z: u* y: R/ ?{ / L2 @7 j% F# L
while(n!=i)
6 V9 `) E. Y5 u- p( m2 X{ : r3 W0 M. U" { F
if(n%i==0)
3 ]0 G6 Z% n# j, ]3 ?+ }- Y1 ]{ printf("%d*",i); $ O) o$ z) F$ r: G; j% H
n=n/i; & ]0 H9 w' b$ n$ f
}
+ j2 F8 M% B( a6 o3 ~% Qelse
* T3 b& J7 W1 V! h5 G2 j0 K. jbreak; ) H1 ^& Y( v2 ?" V8 A
}
8 _( c/ P2 l( m' Q}
% G2 R& n% v) Z& z8 Yprintf("%d",n);}
# m$ r e! q+ V" R$ d& J============================================================== - Z6 p V/ p/ T% G- P K4 }2 Y g9 c
【程序15】 ! ?* P0 v& y: @" {2 [4 F
題目:利用條件運(yùn)算符的嵌套來(lái)完成此題:學(xué)習(xí)成績(jī)>=90分的同學(xué)用A表示,,60-89分之間的用B表示, * n( S. X, o( l8 v
60分以下的用C表示,。 ; j d5 o- |2 {% ]
1.程序分析:(a>b)?a:b這是條件運(yùn)算符的基本例子,。
+ |' r& l" j& o; e2.程序源代碼: ; c# ^7 F9 O8 j7 R% J i' q. p
main()
1 ^( q6 U9 n" R+ n) F{
6 F8 Q. ^( J3 O% B+ g6 dint score; 4 n& q2 X' V# B: M5 k
char grade; 2 G6 ^0 Z/ J& u( W4 Y" p1 G
printf("please input a score\n");
, {5 E$ M; y! w5 z1 Mscanf("%d",&score);
0 a4 D, `6 d* ?0 m3 mgrade=score>=90?'A' score>=60?'B':'C');
- o! h. z: L$ K iprintf("%d belongs to %c",score,grade);
9 n7 |: ?# }- @0 P2 K}
3 Q! B+ ` \5 r============================================================== 8 W' K* p8 `( f s, g
; U* j* Y; s; O* @ |
|