|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
【程序6 】
0 P" l5 n- Z1 T% r) \1 i d题目:用* 号输出字母C的图案。 ( n% f$ f4 Z5 o, g* b7 n' b- y
1. 程序分析:可先用'*'号在纸上写出字母C,再分行输出。 & V' z, Y7 r+ p
2. 程序源代码:
7 @0 K) n! x2 ]& M! H#include "stdio.h" " P/ I4 I. g: e; y) F# J
main() {
1 K8 A! e8 L: p, ~$ d: m0 Oprintf("Hello C-world!\n"); W( e# E5 a8 `6 @( T6 `5 X$ S
printf(" ****\n"); 9 W P# ?2 S& @* ]& q! O9 l/ o
printf(" *\n"); K7 `; m! m% t
printf(" * \n"); " B6 o N9 s4 v! l+ \( s
printf(" ****\n"); } " j$ k' @" V: ]# B. T
============================================================== " R% n' d$ V3 g. i# v) i
【程序7 】 # z! l) K1 f( ]
题目:输出特殊图案,请在c 环境中运行,看一看,Very Beautiful!
$ \. L0 t+ @) k1. 程序分析:字符共有256个。不同字符,图形不一样。 ( z6 ]/ s- u) j5 ^
2. 程序源代码: 9 G) g+ d ^' x. V
#include "stdio.h"
. n2 y+ m- i) _# ?main() , P; J! I. w5 ?" m% y- ?& e) r
{ 6 s+ c% T, _9 [/ r, x$ {
char a=176,b=219;
" @6 ^- F8 r" I8 M8 f5 z; Hprintf("%c%c%c%c%c\n",b,a,a,a,b);
; c3 c% D8 e$ A; r- k0 }printf("%c%c%c%c%c\n",a,b,a,b,a);
+ H0 }7 k/ E: m! i7 u3 E3 U. Uprintf("%c%c%c%c%c\n",a,a,b,a,a);
- l! @6 v* E1 h; F/ H+ K4 `printf("%c%c%c%c%c\n",a,b,a,b,a);
( N0 q8 K, `- K n# ]printf("%c%c%c%c%c\n",b,a,a,a,b);} - L4 l( W& o9 v# \9 S
==============================================================
1 N1 r8 r' V% c; W+ k【程序8 】 3 N5 k# I8 T! U, S7 \
题目:输出9*9 口诀。 - I n( L/ ^# m$ w0 r! m3 O
1. 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。 5 X7 v f3 V4 }# e
2. 程序源代码: # |0 h a, Y: G
#include "stdio.h"
3 Q) u4 k7 B W: {1 W7 m6 ^: s8 Bmain() ) {' c: q6 I9 @& H, C
{ 8 s* U8 Q) Q. Y) ~
int i,j,result; 4 `, V. Z1 P" o" I+ U# o
printf("\n"); 4 G0 P) f x7 `+ B$ i) g2 |0 ~7 U
for (i=1;i<10;i++)
1 v3 i9 L/ ]- O, u# ~' I2 Z{ for(j=1;j<10;j++) ! d6 D; H8 W% `
{
" l; Z4 V1 L. r' @result=i*j; % Q( q) _) M9 o$ v5 `. r" p
printf("%d*%d=%-3d",i,j,result);/*-3d 表示左对齐,占3位*/
1 m1 [9 Z* D, w- A1 Z/ e1 k( r}
% U/ Z( e" S8 Z% q+ u$ Wprintf("\n");/* 每一行后换行*/ b; ^: U, M8 ~' p/ C* @
} " n" n) a, }$ W/ S
}
/ d$ x/ [, Y( F$ |, @5 G==============================================================
) e1 ^; x* g+ n& E: }【程序9 】
+ J* w& p. Z* i3 B题目:要求输出国际象棋棋盘。 (嵌入式学习企鹅要妖气呜呜吧久零就要) ) i! ]7 d+ Y. F J0 C/ I' D* d
1. 程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。 s4 ~& { H) N+ [ d: M2 V
2. 程序源代码:
7 ^7 Q# {: S6 a- Y3 f#include "stdio.h"
* W- ^6 G5 a6 _2 o" Q7 V, O* Dmain() - P- I$ `. h( V
{
. U) K# [ y" l3 O7 @int i,j;
) P3 y; P! f% u& tfor(i=0;i<8;i++)
; W& @1 h' E9 ]{
8 b3 e( ?* ]* Efor(j=0;j<8;j++) ( P6 l( N8 J( S6 @( R
if((i+j)%2==0)
& O& k' R; G, R. g2 t' ?7 f) Aprintf("%c%c",219,219); & i7 ^) X8 l4 J0 L$ I/ t( c: v' G
else ; h3 W' R% U9 M+ ~0 T
printf(" "); 8 ^/ m' ?, ]0 F8 E4 p6 q
printf("\n");
+ y! p/ d: b+ \- {} " T( Z- n8 J4 D) {# p) w, q
}
6 c, g9 }. B9 _! l. J; S==============================================================
8 m2 ~/ `7 ]+ ?( e0 N* h【程序10 】 4 _; |( T: D. r. D
题目:打印楼梯,同时在楼梯上方打印两个笑脸。
+ m# F2 Q6 l9 y2 R" f( U1. 程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。 " D, _, ]1 G" i6 W8 |% q
2. 程序源代码: " J/ d3 f0 j: _+ @) P% ?0 Z
#include "stdio.h"
0 y% f( ]/ X5 Y# r2 Jmain() $ l9 z& X6 @* C# Z# k: l' |# _
{
* I0 U3 W8 s9 ?" }3 ~& ^5 |3 n6 qint i,j; 0 X6 V! [5 A$ ~' u
printf("\1\1\n");/* 输出两个笑脸*/ * {6 y, \9 h- E# P: A. v
for(i=1;i<11;i++)
/ j/ a: S' {! j{ . C& W2 i, V) Y- T# y
for(j=1;j<=i;j++) A4 d' h0 w) `, R5 G* W! v' _
printf("%c%c",219,219); 0 h( {8 e( g; C- ~7 A: h' M
printf("\n");
; {% J' e, |$ @! ^}
/ b1 H. G1 t4 c} 2 a8 G9 K* ?% `5 ~+ ~0 _5 K8 o& v
+ ~/ R( D/ f* U5 }6 I7 }
0 Q3 {- D" _: y& s- R$ A" V" D# N: \. g% E
作者: zhlei81 2005-1-22 11:29 回复此发言
4 R, Z9 M: o- Y8 m5 o, ]6 O" m. d* e# O N
--------------------------------------------------------------------------------
6 \7 j; g# l6 }% s4 \
* e5 e$ F! b# O! e3 回复:经典C源程序100例 $ ]4 a, N6 Q8 r( J9 e$ d# n% H
【程序11 】
% a1 {3 Y7 [# M. \1 s题目:古典问题:有一对兔子,从出生后第3 个月起每个月都生一对兔子,小兔子长到第三个月
! X! h0 m) L' t6 U; n后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
4 h0 ~" N' \( Q$ @, f3 c8 D1. 程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
. L* z5 X; y9 F2 n8 x3 P$ [2. 程序源代码: : X5 I, a1 N8 Y% R& p
main() ' L+ D% y j3 K
{ " ]5 H1 K3 H4 l9 p9 q
long f1,f2;
$ L# x0 `5 Q5 U) H4 Wint i;
' K( F4 E2 I/ O2 q; Hf1=f2=1;
% E1 U/ K7 V* K, ^' jfor(i=1;i<=20;i++) . I7 v/ \* c C9 y5 Z u9 a ]
{ printf("%12ld %12ld",f1,f2); * E& j: s# f+ Y$ A
if(i%2==0) printf("\n");/* 控制输出,每行四个*/ " U' R0 Y! `: l; ^
f1=f1+f2; /* 前两个月加起来赋值给第三个月*/
& V, V* m6 \! F2 X* Uf2=f1+f2; /* 前两个月加起来赋值给第三个月*/
2 J! B d+ z" b. g; w}
, ?. g3 Y" b4 L2 c) Y/ s' I} $ c1 g. m2 j* a: d) `
============================================================== # D9 \9 ~& S5 j, N+ P1 Q9 m; I
【程序12 】
) t# I, [" t/ B6 b) G" G题目:判断101-200 之间有多少个素数,并输出所有素数。
' c" Q7 }1 o+ g u3 I1 E, }/ X1. 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 9 B+ m0 G4 s+ J; f' U8 m8 {
则表明此数不是素数,反之是素数。
6 x( d B( l) D8 ^2. 程序源代码:
/ |" A7 K; }; O* o" p#include "math.h"
" W+ k- o2 @$ |- B/ C Tmain() / F3 s2 y. Q% v( O& N: P7 |2 P1 l
{
$ P# O8 G- e! i1 H) H+ a( }; Lint m,i,k,h=0,leap=1;
! ~) P* s4 @3 L/ G) D0 f; hprintf("\n"); . C, }, E+ E _& h2 Q E, o2 c
for(m=101;m<=200;m++) ( ?& U8 X% w+ c4 @2 S' {- G- E
{ k=sqrt(m+1);
# s# m: U# x, \. P3 {for(i=2;i<=k;i++)
) L8 q# G7 N+ s: a& O$ p* h C) ~if(m%i==0)
. \ w0 R2 r7 b# { D3 X u{leap=0;break;}
7 a* o% Y: X+ m, S2 v. xif(leap) {printf("%-4d",m);h++;
# g2 [4 ^& f( K! ?0 Vif(h%10==0)
' [( W1 o: |3 rprintf("\n"); ! H. @1 d e' ?# d3 O
} # K% _* V) J6 |# c8 ?
leap=1; + @: i4 O1 M6 E n5 K' X
}
# s# l# Q/ D3 wprintf("\nThe total is %d",h); # U4 W' ~: Q6 w z$ [/ [+ r( `
}
' o3 ?3 A \/ |( U. H" k============================================================== ' c2 j {" s( ^) A6 |$ J
【程序13 】 7 J4 \& P- |4 D0 h/ P7 G
题目:打印出所有的“ 水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数 3 c1 l3 `# p! ~
本身。例如:153 是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
$ {: s1 T" ?& _ c( f. c1. 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
. \9 P' U" Q- @' w9 t" z; F2. 程序源代码: $ a& {; W6 c* W; R
main() " Q$ ?& Z5 M- p3 x, g
{
/ k& ^9 u& m# p2 `# R# H- P) Nint i,j,k,n; 3 a2 o( g, C, O& D7 d
printf("'water flower'number is:");
$ d& X* Z( G, j* s" j) {0 P1 Dfor(n=100;n<1000;n++) ) `: t1 t) O, Z, B6 D
{ 5 Y: j5 h: [; n# k! I" B: [3 g
i=n/100;/* 分解出百位*/
, w" s, s5 s1 u+ Mj=n/10%10;/* 分解出十位*/
/ d1 Y* t! G8 e- ~, g% T1 rk=n%10;/* 分解出个位*/ . t8 q4 P$ b E! N
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
w) M, Y* K* X5 q{ / E9 @( f6 ^9 [! a+ ]
printf("%-5d",n);
! R4 p) n) n, E' ~: k}
( j0 F& n5 I) m8 t# X- {% O2 [ Z- ~} ( ^9 H" w6 l4 q' h9 y D
printf("\n");
2 R& e1 }$ M9 l, z' o}
1 j: Y6 R# h/ V9 q( Y$ A& M# F==============================================================
" K0 @, x0 e: v" q【程序14 】 * t' }; f5 P9 Y0 a9 X2 n
题目:将一个正整数分解质因数。例如:输入90, 打印出90=2*3*3*5。 , O2 Q8 h: v) `! S8 R/ a
m8 K1 k* b* ~+ e3 d6 Z1 }! |/ l程序分析:对n 进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: 9 E- C. p& v5 I$ T7 `% Z3 M
(1) 如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 - \9 O8 L4 m0 G9 S
(2) 如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n, . }0 J( j3 h7 y4 L3 X8 {
重复执行第一步。
* D+ Q, i* g* M8 ?) D: [( W(3) 如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
w7 a( Y, N; s0 O5 d
5 @7 e" @" u: _2. 程序源代码:
/ J1 S* c1 z6 l5 V2 W/* zheng int is divided yinshu*/ . |/ F& X2 ]+ d. ], D& B( p
main()
6 m9 P2 J2 F% N) p+ ^& v3 k1 V/ D{
: L* i- w* C+ w' V+ qint n,i; ) v( h1 I4 Y2 O E# w' J
printf("\nplease input a number:\n");
: f# D+ v+ x& m( P& Lscanf("%d",&n);
5 O5 J/ ]9 _2 { A9 xprintf("%d=",n); . i* t5 v( y* O1 f
for(i=2;i<=n;i++)
5 K" Y5 d( |$ g: J% k! B{ 5 H7 ~, K( j' [% U# M ~' Q; D- E" [' [/ B
while(n!=i)
! N7 A4 V! Y0 t5 B" c{
& t3 u" M( |# b3 l v6 B, b9 q+ Yif(n%i==0)
. c3 d* \, n' E( R4 o# ?{ printf("%d*",i); / b4 a! X# }. w5 w0 f$ _& P- l# L! x
n=n/i; ( X" C* ~4 R5 \3 P6 \( h9 A9 e9 `
} - X. c/ ^) N1 t: l# V
else
3 h. n% F1 c6 o+ Ibreak;
; C2 @7 ~) e' ^6 @) G* s( `+ i} ( D: X' `5 T7 {) V/ W) U
}
; P' u9 p* m2 @! b D; N% ~printf("%d",n);}
# L3 l4 X0 T( k# c! s$ P============================================================== ' N+ H( M+ e# Z
【程序15 】
2 z& o& Q6 p- j9 {5 E t! C题目:利用条件运算符的嵌套来完成此题:学习成绩>=90 分的同学用A表示,60-89分之间的用B表示, " ~) e- I6 L9 g$ F$ y8 s
60 分以下的用C表示。 3 u. _& r6 ~. B) ]
1. 程序分析:(a>b)?a:b这是条件运算符的基本例子。 $ d1 t+ ^* X" j5 Z- A7 V( {
2. 程序源代码: $ w3 _% g+ n" i/ I
main()
+ m" G" j5 e& _3 e6 V; g0 p: o{
) a7 j) H. {9 O+ u( ~7 gint score; ! x6 |. I+ z5 K5 r
char grade; $ o" l! A; Q3 D+ X' [" Q( @4 K9 X
printf("please input a score\n");
6 C: O8 B- W+ z& r3 fscanf("%d",&score);
6 X6 e1 A) V9 O) Tgrade=score>=90?'A' score>=60?'B':'C'); & d5 C# {* I* T- F3 n" C0 a
printf("%d belongs to %c",score,grade); ) S+ D7 G* ^& E* x- I2 p" U7 y
} N5 {0 [1 C3 v7 I
============================================================== 4 _0 O, R8 i" M `' x
7 ^4 y: f' ^' @; M( S0 k |
|