|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
【程序6 】
, O: f+ L/ G: @% T: d5 h& I& O# ^题目:用* 号输出字母C的图案。
; R) l! r6 P9 o) J7 m1. 程序分析:可先用'*'号在纸上写出字母C,再分行输出。 ( }& k9 W& E7 j0 k, }( g
2. 程序源代码: % n+ v3 t7 E: _1 l1 b
#include "stdio.h" / o# l. A- x8 [9 l- W: ~5 N: E2 M
main() { ( n/ y( g0 M& Y/ t1 `( N8 [ z
printf("Hello C-world!\n"); 6 l. @6 d& Q E& N! K' ~4 k
printf(" ****\n"); $ \9 q% O/ M8 c, L M
printf(" *\n");
, N# m; r- e6 b- R8 U( Pprintf(" * \n");
) \3 J _# l) k- u. z& G9 iprintf(" ****\n"); } : P- W% W$ Z/ G; B% O: t5 D
============================================================== ) I( E y) F5 T8 P% Z3 ?$ ~/ A' [
【程序7 】 2 K) C8 {! {! O7 [9 `& A7 q+ ~9 z v
题目:输出特殊图案,请在c 环境中运行,看一看,Very Beautiful!
" L& }9 v" \3 [2 S3 `6 q4 o1 `1. 程序分析:字符共有256个。不同字符,图形不一样。 8 T) h' q1 M8 C# V
2. 程序源代码: ; |9 U& `' m( y& m7 C$ m
#include "stdio.h"
9 Z) E1 z% o* W; G/ p0 qmain()
+ Y' @0 k/ R5 x9 n{
) d! c& Y7 y+ B3 ]6 `char a=176,b=219;
$ t6 x/ r. f. j. j! }$ B! _7 Cprintf("%c%c%c%c%c\n",b,a,a,a,b); - d0 z: ^. W8 A% {
printf("%c%c%c%c%c\n",a,b,a,b,a); 7 z2 A/ b9 G4 i1 I
printf("%c%c%c%c%c\n",a,a,b,a,a);
" W7 T b' r8 E( R3 J1 yprintf("%c%c%c%c%c\n",a,b,a,b,a); 9 r: k' s, U- I' U6 \# D
printf("%c%c%c%c%c\n",b,a,a,a,b);} $ v- f# M* X+ u) A6 `, r# ?
============================================================== , _" _' G% s5 _6 Q1 R8 L4 X
【程序8 】
8 c3 A4 p1 T6 q题目:输出9*9 口诀。
' b& g \4 m2 r p' u) B0 {# U8 z8 M6 `1. 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。 ) i, V0 O7 }0 M* r
2. 程序源代码: R" S2 | B5 Q, j
#include "stdio.h"
& T6 y0 q* g0 F! Lmain() 6 K- \' {$ E0 O2 {) N4 X6 o# A
{ . `5 O0 r) B5 Z) [4 ^7 h k! \
int i,j,result;
Y3 Y8 q. ~; ~printf("\n"); & }* k( O$ a1 r7 H8 w6 d; ?) O
for (i=1;i<10;i++) - a( K) y2 B& U3 H5 N) f
{ for(j=1;j<10;j++)
* t6 M+ z3 u$ G' |) W% g{ , d/ p$ T0 J" C. J( E5 x
result=i*j;
$ j" Z( n& b; D) _) l$ Nprintf("%d*%d=%-3d",i,j,result);/*-3d 表示左对齐,占3位*/
! C2 j* W8 A8 t/ J6 n1 e9 y* V} ' q1 E& l6 I0 P8 ]( m5 `$ a+ n. t
printf("\n");/* 每一行后换行*/ 5 w/ L0 ^+ X# n9 O9 C; g$ T
}
6 z- b9 ]+ b# ?; L. q" A}
+ U" \0 c8 G% m============================================================== 1 e: {9 d6 K/ j3 P8 G/ Q3 m
【程序9 】 $ O5 x- w3 p. ]/ z7 k, z7 E) V
题目:要求输出国际象棋棋盘。 (嵌入式学习企鹅要妖气呜呜吧久零就要)
9 N3 y2 { C) V/ D9 A4 J% A1 v3 Q. s% {1. 程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。 ( C8 o! f3 {$ z9 [7 p" x/ `* U
2. 程序源代码:
" N2 M0 W9 U6 v( m#include "stdio.h"
# V. r7 M' S$ E* B1 i( B" lmain()
* R; f& {) T1 O* |% v{ 1 o+ o0 G- h/ O8 y/ w8 D; R) v# U
int i,j; 8 G. h2 q6 U6 O5 l
for(i=0;i<8;i++)
) m- J; v6 `& m m{
! W8 N- I6 _ V" qfor(j=0;j<8;j++)
$ ^/ m! ]0 [9 g' L. n ]if((i+j)%2==0)
' K0 i K2 _4 i+ mprintf("%c%c",219,219); * t7 @3 M; \5 S8 t! I# ~) X
else
$ o2 L V1 o7 B9 l9 l, |# v; m/ aprintf(" ");
( o% o( P8 I+ |, e1 h5 t! Gprintf("\n"); 3 U! Z, r) ?3 N2 q: H* c
} $ k# v9 E3 L" L# }. f0 I
} ! V% s( b* x6 s! O7 [( ^7 \7 n$ B! V' v
============================================================== 1 D+ `% }$ T0 [9 ?8 @& u. E
【程序10 】
; t, }; x/ ^! t8 K& ]* p0 @题目:打印楼梯,同时在楼梯上方打印两个笑脸。 . ~" A! G9 W- B
1. 程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。 8 N/ w4 a1 o5 Q6 ]
2. 程序源代码:
+ q- F, U0 k) X6 |$ L' _% i7 Y#include "stdio.h" 5 ]' ~4 M% d- `
main()
6 K# K0 g% T) c{ & B7 Q* k6 I% V. m8 ^- Z, Y
int i,j; % q0 C. n$ V9 M9 n
printf("\1\1\n");/* 输出两个笑脸*/ 9 B; ~* Q* O% ]% B
for(i=1;i<11;i++) 5 X3 ~' A1 [+ l5 w8 R( h
{
0 L1 w* |( B4 Ofor(j=1;j<=i;j++)
7 U" p6 H; Y$ b" Rprintf("%c%c",219,219);
, H: W- j |* z1 q0 Iprintf("\n");
+ i& f( W* @* G% I" f}
9 M2 ~; q" b2 t9 t}
N( x; i" y) E: k
# X( M( S8 L0 G- Y
5 c, W* {5 X$ |& c4 E- [' N2 S" r: c' N' p* D5 h: W# s$ M3 O* i1 K
作者: zhlei81 2005-1-22 11:29 回复此发言 . ~ B: a& H! d! P3 g* S( e' {
. {" d Z: t/ L8 l% }% T
--------------------------------------------------------------------------------
; @# K8 k, e) E; x: o& ]6 X( m
" Y# W) U$ ?) ^3 回复:经典C源程序100例
6 L- q- l: [3 N. E5 W# [6 g0 U }【程序11 】 1 [2 m) z) q1 w/ s, C2 d9 _ O' P
题目:古典问题:有一对兔子,从出生后第3 个月起每个月都生一对兔子,小兔子长到第三个月
! W' ^1 M8 X5 I8 U后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1 p: R/ a7 {# F3 m$ f) S+ O
1. 程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... % ?) P% c& D1 z6 Z% h, c* i- h
2. 程序源代码:
, @) v+ u; g) b- M0 l8 Tmain()
2 }4 v* f% a6 f8 o5 b1 Y{
! Y9 P/ q; B$ H0 A$ G+ klong f1,f2; : g o8 w& L) U) s2 y" j/ V
int i;
* B& m! t7 k4 Z; Zf1=f2=1; # R/ R9 }4 ]6 N# r1 n
for(i=1;i<=20;i++)
! P2 A/ d+ d9 Q. o{ printf("%12ld %12ld",f1,f2);
( S$ V0 I' F! [: a5 Pif(i%2==0) printf("\n");/* 控制输出,每行四个*/
# d, C1 G( G' G1 H. {f1=f1+f2; /* 前两个月加起来赋值给第三个月*/ A/ O" f: j: h4 j7 v
f2=f1+f2; /* 前两个月加起来赋值给第三个月*/ & Q: O" h9 q" V, } i( l
} $ h7 I+ B- r6 Z
} 3 c0 L( e' @# A" D* Q: C5 \% e5 R0 j
==============================================================
' q, x; C5 x: b3 J3 t1 b【程序12 】
) i/ X8 [9 g8 @' T' s5 F题目:判断101-200 之间有多少个素数,并输出所有素数。
^2 A: N9 p$ G" c1. 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
% O$ `& } s5 f; Z6 |, B则表明此数不是素数,反之是素数。 ' {9 d5 U! [2 Q! n2 N8 r: \) ]
2. 程序源代码:
( x% E% a% \4 l8 C5 g#include "math.h"
. @$ n4 r3 s3 e% k& Mmain()
' x/ L0 `' d/ A( u! I{ ; d( ?0 g3 m& p8 L. f( I# z* N
int m,i,k,h=0,leap=1; I! Z& W1 H+ L& D9 u- ~/ A& ~
printf("\n"); & @/ {8 G( }) t* a% a. R
for(m=101;m<=200;m++)
1 {, U1 j5 C5 `1 Z' _{ k=sqrt(m+1); 4 R0 G; c i; }- l" c
for(i=2;i<=k;i++)
, l1 m& K" G- J. y$ tif(m%i==0) # S) @! ]! o0 Y: I5 }) L9 a: _
{leap=0;break;}
! |1 L1 i9 G9 o$ M; H$ eif(leap) {printf("%-4d",m);h++;
. y C" S8 C, rif(h%10==0) * u) j* w% `3 w5 J. W
printf("\n");
" }8 A$ G6 g G0 l; P" k} " u4 Z K& L* \& q" Y
leap=1;
1 M: |8 A, x& z h8 r8 U3 ]} - M" P5 b) e. v
printf("\nThe total is %d",h);
' G: Y0 a- ?, P0 G}
9 D+ _+ y3 t! q% O============================================================== $ j4 Q: {3 X' b
【程序13 】 " q1 G& c1 `! D
题目:打印出所有的“ 水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数
: t4 F6 {" ^3 y; V4 D9 y& E本身。例如:153 是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
$ R+ \( ], r4 P7 O7 F- D) Y1. 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 9 v8 N5 p& B8 K1 V1 {
2. 程序源代码:
# K; U5 N9 m9 [6 @8 t1 w3 Qmain()
7 X' e0 c9 [; l0 ^) Q, a{
' G; E$ G8 f9 |. S' zint i,j,k,n; % A8 h* v- K* } K& }
printf("'water flower'number is:");
5 ]8 U7 M4 T+ F' x" @; [7 j1 T% Pfor(n=100;n<1000;n++) 9 _ L4 [& O4 Q7 |
{
) B( ]0 j* C8 Y; g/ Vi=n/100;/* 分解出百位*/ 3 ]- a3 r7 L+ Z5 P. J7 p0 w4 E/ J
j=n/10%10;/* 分解出十位*/ , Q9 {: ?3 c7 y$ E( q# F9 K% h$ v
k=n%10;/* 分解出个位*/
8 j; E% k7 n& y! y4 xif(i*100+j*10+k==i*i*i+j*j*j+k*k*k) : i- o# W* m6 i' z- ?- e
{
~; D# Q, i3 Nprintf("%-5d",n); 3 l( W$ K( s: d/ C3 `9 [
}
3 Z( b- [+ ]+ R}
2 j- l' t5 ]) g6 vprintf("\n");
+ D- N) m# R4 D# m' y/ k$ b+ ~}
0 i7 |: y' V5 V8 e" h============================================================== ) U5 z R( e, w1 e, { S4 U
【程序14 】
6 f* L; H4 }+ @ ` s/ n6 z题目:将一个正整数分解质因数。例如:输入90, 打印出90=2*3*3*5。 ) x( X8 `3 o% i0 x- T1 B6 L
$ f5 I4 @6 V% ^$ }程序分析:对n 进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
0 G; a9 N- @5 \# l1 a2 ~" ~/ N(1) 如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
! ^- c1 J8 C2 |8 H6 t(2) 如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,
+ [0 Q" X5 P2 U6 f i重复执行第一步。
5 w6 i9 q- b% M' q3 q(3) 如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
! M/ q' ^2 W2 ?5 v3 p3 `/ Y7 k% Z6 J4 j6 b0 f7 I' n
2. 程序源代码: ) I+ ]( M3 N8 b: S8 i; I
/* zheng int is divided yinshu*/ # R+ W& G- g, P, q- d7 e: O. G
main() 7 h" F' x1 j! q7 r- E1 T( ?* d
{ & D$ P* `( G% g) L" n2 ~) a0 l
int n,i;
5 l* P$ |' }6 ]. qprintf("\nplease input a number:\n"); % E' n! l& I4 v7 L- x
scanf("%d",&n); - L3 w: H# a* M
printf("%d=",n); ( C4 J( i' t0 H
for(i=2;i<=n;i++) ( e! u# _& ?# B
{ ]" I+ [1 R. o9 U7 v. B
while(n!=i) / w- v {- V: d V! ^
{
1 S" L" u: Y% y7 w8 yif(n%i==0)
) I! l+ F6 g5 o2 e' i& o{ printf("%d*",i); $ q# K0 P( _4 e; P, V3 b; z2 k0 Y
n=n/i;
! u7 r( j; P+ m- q}
1 z+ x5 i* k+ `0 }5 z- kelse
; h4 N: n+ [' z- ?break;
$ j3 c2 q2 B; ^* n/ }" h0 b} ( a: \: [7 w) P, Z6 n, x
} . y* I/ B& }2 @7 J! t) j
printf("%d",n);}
/ Z d) i' {2 V============================================================== 0 E- C, x& t. k7 }
【程序15 】
$ l4 a* L$ b; _/ N题目:利用条件运算符的嵌套来完成此题:学习成绩>=90 分的同学用A表示,60-89分之间的用B表示,
- u: e" t* k# Y3 D3 V3 Z60 分以下的用C表示。 1 r1 N: A, J& l/ f+ O+ }3 M
1. 程序分析:(a>b)?a:b这是条件运算符的基本例子。 " r, L' W3 @! K, f
2. 程序源代码: - _3 u2 \& U5 h9 i* Q: b
main() * n) Y# N U, s, i6 R [) @1 C
{
6 H# ~3 t9 N2 Y7 V" wint score; + o+ V; R7 D; X, r! Y
char grade;
7 z2 H2 `, s( j. o- f1 b" H. _printf("please input a score\n");
' U9 W* K, T8 F4 \0 s$ B3 Gscanf("%d",&score); : A4 @9 J4 t# p6 C. G" ?
grade=score>=90?'A'  score>=60?'B':'C');
, ^$ L) Q# q3 [1 D' lprintf("%d belongs to %c",score,grade); ! `! U- g+ m c; y1 C4 |6 _
} ' _% C0 U6 B* A h! L
==============================================================
' \/ |& j) p' E
+ j* u/ g3 o b1 _6 s |
|