EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
【程序50 】
! I% g5 h1 s! l题目:#include 的应用练习
8 t$ p& u' ?2 R5 o6 A! `" {' |1. 程序分析:
5 P+ s5 d$ R2 ]/ e2. 程序源代码:
, d) ]2 t& P0 n6 x4 P* Q# E% Etest.h 文件如下:
3 a% ?3 a% ?! x#define LAG > # I9 n* ^3 T+ S) B3 n8 [8 K- I
#define SMA <
4 L1 ?& c" k& r* g+ d#define EQ == ' K8 R0 j' w: Y7 E+ I0 Y* T0 x8 e
#include "test.h" /* 一个新文件50.c,包含test.h*/ . K3 c! r" l% b9 w* @( d
#include "stdio.h"
7 j) O' V% X1 z% O+ a% X) Qvoid main() 2 Y9 @+ T0 A; {: Z6 A* E
{ int i=10;
- J6 h# ^+ j& E$ i" jint j=20;
# K, T; {: Q8 w0 |4 mif(i LAG j)
* O8 w- Z9 P- ?# q# k' U( nprintf("\40: %d larger than %d \n",i,j);
% k* r! X3 h. f* v7 {+ }else if(i EQ j)
* ]7 K! D7 T. Q6 @( G) v8 ^printf("\40: %d equal to %d \n",i,j); - F3 {" _0 j9 S, |# k) z$ N7 e
else if(i SMA j) 8 e# l- q# h& q9 ?$ c$ \* X
printf("\40:%d smaller than %d \n",i,j);
5 U& S0 Y4 F4 ?& a/ @else " n& F7 Z7 N7 {! G) z* M
printf("\40: No such value.\n"); + `/ Q* A$ i5 c, S
}
$ ^* |. Y& x; P& V1 n【程序51 】
9 g) r) \& W. _2 b" s0 w题目:学习使用按位与 & 。 3 w, ^+ @5 F! V0 `7 F6 N
1. 程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1
6 M4 n# p& M. D9 A7 G2. 程序源代码:
5 D8 A5 ~& \+ r3 M4 U' c- @#include "stdio.h"
) C6 \; o$ b9 ]1 o7 c+ amain()
5 R6 _/ }+ \- T$ B{ / [2 M; x$ ^8 P- P
int a,b;
( P, T. `2 g, ~) z6 W) r7 Ma=077;
( w4 s5 \* a ]5 B5 Y1 f% ~% z2 ?/ ~b=a&3;
( C( D% N7 P% D! `' Y; [ ~printf("\40: The a & b(decimal) is %d \n",b); % |- P. b; X0 Z8 }. _
b&=7; : z; K2 ?' b6 u i0 g
printf("\40: The a & b(decimal) is %d \n",b);
' R7 R, H, y, v# d$ Q& v}
2 M$ ~. c6 O0 h/ p0 p============================================================== ; E' f8 V+ N" p8 D. J
【程序52 】 7 ?/ `4 E1 D9 m) K( Z& o
题目:学习使用按位或 | 。
' w7 M. x1 |* j1. 程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1
0 [5 E( b* d8 I2. 程序源代码:
6 L5 o3 x- p% j) W! }1 s. j; B#include "stdio.h"
, Z, @9 H/ Z& O, j- _' l, fmain()
% e9 x: @, Q3 |4 e) @3 l{
% e, g S- ~8 I# C4 ?int a,b;
" W+ d( C W; x6 d6 X# {* R. wa=077;
9 z, T% J/ @7 o" @1 z zb=a|3;
3 ^" G) s! ]" ^. uprintf("\40: The a & b(decimal) is %d \n",b);
( `- }" C$ g' ]: y0 l" W4 Ub|=7;
, I5 u4 t" C2 u' H9 Aprintf("\40: The a & b(decimal) is %d \n",b); 2 H3 l+ L+ x$ J' W& u
}
1 z0 l r9 B( H; m7 D+ I============================================================== 5 u7 | O- q! Z
【程序53 嵌入式信盈达企鹅要妖气呜呜吧久零纪要 】
0 v4 e, H; }& G. t2 k* h& n题目:学习使用按位异或 ^ 。 " t$ j T" O# s4 Y3 h
1. 程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0
% q3 Y% C8 B! R( a5 `/ T* e2. 程序源代码: 9 c8 d+ O0 w, n
#include "stdio.h"
& M5 H9 q5 j3 `$ {# e! W4 F! omain() 1 H) n7 y* S' c! |$ N: W3 m
{ & ~* @, D. p9 a* V) X, y6 B3 @
int a,b;
# f) T0 B8 o4 L$ v8 f. r( ja=077; & D) D) }1 P& R1 v$ Z
b=a^3; $ r/ j, Z0 a# v& J
printf("\40: The a & b(decimal) is %d \n",b); 6 W% w( O+ w% T# W! J
b^=7;
7 d7 W3 d; p7 ]; a. V: C0 Hprintf("\40: The a & b(decimal) is %d \n",b);
5 v: t! p- z2 f0 [4 c9 s, F3 w% m} 1 J+ G) L& j4 V2 w1 Q! L
==============================================================
) E% K! r2 ?5 l1 w, Q【程序54 】 - @/ o) O! ^! A+ O9 ~4 @5 A
题目:取一个整数a 从右端开始的4~7位。
1 N7 T. Q" ^. d# [+ F7 A* K程序分析:可以这样考虑:
4 M% h o2 b0 i3 {& p. [1 o(1) 先使a右移4位。 8 p$ s& Y* n+ p: [% J
(2) 设置一个低4位全为1,其余全为0的数。可用~(~0<<4) / E0 m8 n8 h0 F& x1 ?+ ]& |: {; ^
(3) 将上面二者进行&运算。
5 p4 D4 r' _0 g8 ]* }2. 程序源代码: % G, y( I; N% l* K+ g: z
main()
v4 V0 p- l+ O# i1 a- W{ 5 E w* x1 c6 k
unsigned a,b,c,d;
5 m: l2 C- g. }1 ^) Qscanf("%o",&a); 7 L8 v0 {5 r3 W
b=a>>4;
) Z9 b* S0 q+ K% Pc=~(~0<<4);
2 M x m5 V% e& m3 ^* {d=b&c;
( e" ^$ h6 o! _' fprintf("%o\n%o\n",a,d);
7 P! H* ~ b. a; E}
, K: z" S' _3 I q) A/ t==============================================================
) N% z( Z! X# B! \, j! M0 x4 M$ z【程序55 】 , W. {- e! K) Y& [' i( T
题目:学习使用按位取反~ 。
! S6 Q; e% w8 g8 \6 K1. 程序分析:~0=1; ~1=0;
% A$ \' a M% B& u+ A2. 程序源代码:
* |! e* i. g$ R; Y& M#include "stdio.h" / c5 N, }: ~7 u3 `
main() & F$ ]1 Y& f: ` a
{
# M7 |: m4 f7 L9 I2 cint a,b;
/ T4 c. \! Z5 r _2 J) ]$ Ja=234;
" N1 g4 W; r, t5 ~4 a' gb=~a; & Z6 k" P. M0 U6 Y& y: F- U$ u) l
printf("\40: The a's 1 complement(decimal) is %d \n",b);
: v4 h" H$ q) n9 X( U" M oa=~a; / e0 N! Y* e$ {6 ~8 n3 j' {
printf("\40: The a's 1 complement(hexidecimal) is %x \n",a); & s! u% B: `* v3 K" J
} S9 J3 x ^2 A" F
============================================================== , _7 ^8 U; C1 C2 [
【程序56 】 3 W! V, f$ q# e1 H, D
题目:画图,学用circle 画圆形。
% e8 @0 u6 s W0 q- v: ^' ]1. 程序分析: ' q* W( J, d! ^$ o( s$ C, V/ }
2. 程序源代码:
6 k8 F* a1 u P( e3 D* t/ H/*circle*/ 9 U$ @) K' l7 t8 w
#include "graphics.h" I4 ^- q$ C# E1 V' {8 ?
main() 4 M+ ?: {; v) |1 @: O- f
{int driver,mode,i;
* T$ }* U. L# T7 t( bfloat j=1,k=1;
1 M! ^% g+ X6 s" }1 \driver=VGA;mode=VGAHI;
5 c7 T2 |1 @$ R5 {% k2 L/ `* Kinitgraph(&driver,&mode,""); 3 W/ \! f" a( f3 ?
setbkcolor(YELLOW);
* C: K+ Q* ^; h) yfor(i=0;i<=25;i++)
) U z( D( E) P{
6 r9 Y t) L# k$ ?& esetcolor(8); + W- p: H- a. v J9 {, x
circle(310,250,k); . B( A7 I( S: I! ?1 ^1 l1 M* \/ A
k=k+j; + e; k% _1 k$ E- I: h9 k; f
j=j+0.3; - _) n# H K. Y0 h( n |5 f% w1 K
} % z7 S9 S4 w0 v" T. Y- z* a5 x
} & w: P$ I2 R, {$ {8 c9 M" i; K9 Y' P
==============================================================
& m! G* W7 _: b3 j; f) j【程序57 】
4 j: ~6 H; N6 s' c题目:画图,学用line 画直线。 * m8 k: U" _8 L9 C! F0 ^
1. 程序分析: * V* S l3 t# P8 w
2. 程序源代码:
5 A# k3 h7 }! g+ I#include "graphics.h"
, P/ p3 ~% ~" Z' l# f5 pmain()
! @3 h/ T- U* H W" D5 w) H% z# L# o{int driver,mode,i;
1 K) ^8 w2 J9 h, ]float x0,y0,y1,x1;
# N3 g7 r, B K! H3 f0 ?8 yfloat j=12,k; / m' F( D/ ?# k# R' `; _
driver=VGA;mode=VGAHI; : @9 t6 F6 u. {7 D# y
initgraph(&driver,&mode,"");
- x% A0 \9 F! M/ Rsetbkcolor(GREEN); " ~; m5 p1 V6 h4 s. l
x0=263;y0=263;y1=275;x1=275; 6 D" w" l1 q' U6 G) m& a5 d
for(i=0;i<=18;i++) 5 {! l3 {- X1 d* H* k
{ # `# ^9 J3 h/ ]+ U1 q6 b0 S m
setcolor(5); 4 `8 u; I+ A( d8 F7 ]& I' F
line(x0,y0,x0,y1);
2 Y$ G, @- g% d4 y! nx0=x0-5; ! m9 V/ [6 B6 k9 R/ q( s$ l
y0=y0-5;
3 d( y3 D h/ O7 o7 w V+ wx1=x1+5;
. Z2 C0 E1 a$ D+ p0 ]y1=y1+5;
: R+ L& w" S8 R+ ?$ \' @' n3 [j=j+10; & I5 [" Q% z: o* X( y2 I
}
+ Q& \, z" C! b7 X- t" I/ X, cx0=263;y1=275;y0=263;
6 G4 \7 {( ^( H; t; h0 _, vfor(i=0;i<=20;i++)
; T( O& W. X7 S/ h8 w! J2 u7 r0 z{ * V) l9 \/ I4 B O1 S6 G6 z) c6 a
setcolor(5);
# E, P5 H4 O* J0 eline(x0,y0,x0,y1);
2 e$ m8 e# p) C) o4 m5 dx0=x0+5;
' |2 C. M7 t# z. Q" m. Oy0=y0+5; / Q/ k" }3 X, `( w; W
y1=y1-5; # N7 y$ R! X6 t5 q2 ~
} : s v$ I# J" m- v
}
6 \/ `" t d8 R4 z3 B( Q==============================================================
' \ g: b9 e' T! h% R9 T7 N4 |【程序58 】 $ P' g/ d7 J) Z" z# W( Y: o
题目:画图,学用rectangle 画方形。
, {6 o2 W8 F8 [8 n1. 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
$ Q+ Z6 \/ i7 a1 r* A5 h0 F2. 程序源代码: $ z8 L& y9 J# S% X/ E& a
#include "graphics.h" ' g1 R2 m7 P9 n' M7 r
main()
4 M( S2 Z. l( Y$ l0 f{int x0,y0,y1,x1,driver,mode,i;
5 _( f6 ]& b6 Y* { U( v K) bdriver=VGA;mode=VGAHI;
4 j2 z3 t- M* v% s- [initgraph(&driver,&mode,""); N9 ~9 e( e0 X# r0 \. O8 D0 R
setbkcolor(YELLOW);
! X- Q3 u! k' L6 p' t, P; sx0=263;y0=263;y1=275;x1=275;
$ Y8 ?( E0 D t* Y, a( sfor(i=0;i<=18;i++) : G+ V3 _5 ]' N! F2 D. t
{ g9 ?# l$ ]* p- f- w9 q1 K
setcolor(1);
( w% r: k! X( grectangle(x0,y0,x1,y1); " ?5 ^* V4 q) i# h0 z5 ?
x0=x0-5; " z! |% m) u7 A) X# a2 }& ~' N8 W
y0=y0-5;
8 i3 q# C4 ~$ \. w& m# Dx1=x1+5; . k( X- [- r( t) b; }. W- L
y1=y1+5; " [( ^" I0 `6 K% o5 y! r }0 B! b
} & _6 D4 n! W+ u7 K
settextstyle(DEFAULT_FONT,HORIZ_DIR,2); 7 J, l! b6 i# w$ P; b0 w
outtextxy(150,40,"How beautiful it is!"); " J' d) @; A! S" H# S: ?
line(130,60,480,60); ( a5 i& k0 e2 Y; V
setcolor(2); . b! f( ?$ ^$ h w4 _0 l+ e( p
circle(269,269,137); : e% E- a+ q# |8 z3 O
} " [0 ]: s8 _9 `4 \/ D9 e
==============================================================
1 ~! j" s: G# Z m" } T【程序59 】 $ a0 Z% ^6 u( y& _
题目:画图,综合例子。 8 ]; D b( n( k* D
1. 程序分析:
) y* z# j0 Q0 r. d+ r) `/ j/ T2. 程序源代码:
1 P! H- c; O5 ? c: s7 l2 Z3 R# define PAI 3.1415926 ! q5 @- O( ~8 ?3 S
# define B 0.809 9 n4 g/ a7 {8 A; U; Q+ K- R
# include "graphics.h"
- S# e* M+ D/ X1 v2 _6 y' \' M#include "math.h"
. c7 N1 E0 O E( {$ c5 h, Z4 cmain() / l& x' f" c F* u) z
{ 4 u ]( e! @# |
int i,j,k,x0,y0,x,y,driver,mode; + ?1 N( q+ d- B
float a;
0 _8 k$ A, r* Ndriver=CGA;mode=CGAC0;
0 w+ j! R9 Z2 X. |initgraph(&driver,&mode,"");
2 Z' n( n3 `: f' G" \; u+ Tsetcolor(3);
5 S( z; a7 }) l& U; V. osetbkcolor(GREEN); ! K$ Q" ]8 p, D
x0=150;y0=100;
& f' c+ X& G1 K; r' ], V1 r+ Wcircle(x0,y0,10);
' a J2 [4 m8 n, w" Z' s/ S6 wcircle(x0,y0,20); 0 A7 c% \7 n4 p* R
circle(x0,y0,50); 1 m4 ]4 K; D( U' ]+ g
for(i=0;i<16;i++)
9 Y# R1 @- S; v" c{ 8 a* T* l, B; g% D
a=(2*PAI/16)*i; 5 T7 w ^* t0 w' D3 r
x=ceil(x0+48*cos(a)); s; p$ b8 x" n$ o1 O
y=ceil(y0+48*sin(a)*B); ) J/ e5 }. U, T; N/ [/ x" Q
setcolor(2); line(x0,y0,x,y);}
+ e& o6 ], f6 [; [setcolor(3);circle(x0,y0,60); + K- C( c! d, ?# q
/* Make 0 time normal size letters */
! S8 p9 H; B3 |settextstyle(DEFAULT_FONT,HORIZ_DIR,0); % _& a: C( r2 y: D' m8 }
outtextxy(10,170,"press a key"); 8 m9 z9 P8 ^6 J& H
getch(); / q1 a2 k6 Q% e* Q _
setfillstyle(HATCH_FILL,YELLOW); U1 {7 j/ F4 g8 R
floodfill(202,100,WHITE);
' C3 {& l; s8 L1 q5 Vgetch(); 0 ~: K0 b9 J# @
for(k=0;k<=500;k++) 2 |5 [- q' ?7 o5 ~+ v
{ + P, C9 k; E$ L1 L4 Q, B8 t
setcolor(3);
. o x a' E% c' N: vfor(i=0;i<=16;i++)
5 K) s6 Y3 _$ g4 X0 K- d# ?{ . o! w0 y9 S' l1 O+ ~
a=(2*PAI/16)*i+(2*PAI/180)*k;
0 O1 T& o+ p9 \- ix=ceil(x0+48*cos(a));
3 A, W0 Z* A0 D& Oy=ceil(y0+48+sin(a)*B);
* g: Y3 E/ Z$ R7 O1 ?/ g/ U0 msetcolor(2); line(x0,y0,x,y); 5 z# @( ^% o* ]$ V
} 3 u6 i6 ~$ @, g* T
for(j=1;j<=50;j++)
0 I9 k- l m! a9 ^9 n{ 1 F$ N4 d) \& X, g
a=(2*PAI/16)*i+(2*PAI/180)*k-1;
/ N& P5 e1 p$ K3 G7 A0 Sx=ceil(x0+48*cos(a)); 1 N9 s5 X, r p- `
y=ceil(y0+48*sin(a)*B);
( h/ V* A& x+ \7 Pline(x0,y0,x,y); ( @% c: V! |& q9 ~+ b% ~
}
; R! @) C- {* x5 Z/ ?2 O}
# m! t0 R. w; J- e( [restorecrtmode();
, Z# `2 ?- \3 Q( j} + h- z' w: Q# Y/ p3 K) Z# c9 R6 B
==============================================================
* K. D$ C6 e. r8 \* B. r1 H7 ]( u【程序60 】
" P9 E8 \( W: p" `0 G! B) \: U题目:画图,综合例子。
( {4 }, ?8 K6 n" `% {+ E( b) i1. 程序分析: # |! {3 v& R; x- a
2. 程序源代码:
. u# {% m6 H3 j6 Z6 O# `#include "graphics.h" # e0 T+ ^4 T! f
#define LEFT 0
7 j+ a! z+ x$ S#define TOP 0
% X+ i O7 X3 y4 _; w& P#define RIGHT 639 0 L* M4 K( L' K
#define BOTTOM 479 W9 p/ r( |1 W7 Q( t+ B
#define LINES 400
3 R4 W/ q) i0 e4 r* y. v#define MAXCOLOR 15 * Q9 |" j I4 }
main() 4 ?% c& M0 @+ H- S% M, ^
{
, u5 m& P# |! l5 A1 Xint driver,mode,error;
5 R- E; ?& b" ~7 Vint x1,y1; ! z, G; J' C s% t2 W9 E
int x2,y2; 0 ~6 r! X/ W2 ]4 D( D4 j
int dx1,dy1,dx2,dy2,i=1;
( H; ?5 v2 g# J( dint count=0; 9 B6 z* `8 m. ~7 M* n( A0 P
int color=0;
3 {' P$ o* R. \1 w) _3 |! h" ydriver=VGA;
7 z& X, i% H4 @( G7 s5 v. t& Wmode=VGAHI;
: s" ~4 \8 {& k! Jinitgraph(&driver,&mode,""); ! k2 O8 Y% s: _( C0 ~% [( U
x1=x2=y1=y2=10; " C L2 c6 k6 D, ~. ?
dx1=dy1=2;
% D( L( Z3 v# a1 c ^dx2=dy2=3;
. [$ q/ v5 f" ^) s) j- s% [while(!kbhit())
' `( c0 t* H8 z9 C2 ^7 S{
& q" l9 f% B/ U7 I. [7 m1 p |line(x1,y1,x2,y2); / z# B$ B. _8 ^" \9 i6 f5 K
x1+=dx1;y1+=dy1; . O# m2 u& v. M
x2+=dx2;y2+dy2;
' Y! K- }0 F, G* Gif(x1<=LEFT||x1>=RIGHT)
. z4 Y& c: r/ ?/ h$ {dx1=-dx1;
' N$ n5 t; V; d2 I! ~if(y1<=TOP||y1>=BOTTOM)
3 O: r& o6 O' M, a% Mdy1=-dy1; , w* V, B+ \% ^7 A* q( j/ I
if(x2<=LEFT||x2>=RIGHT) 0 c/ X0 B9 y/ ?
dx2=-dx2;
' [5 |+ w4 n1 e) D% @if(y2<=TOP||y2>=BOTTOM) 0 b' w M; h" t8 K3 r( u% c
dy2=-dy2; ) |2 e* L9 F1 J& R2 [* B, H
if(++count>LINES) 6 k, K; j& g1 _! |4 ~
{ : z5 B$ d" {! b6 b7 n2 z
setcolor(color);
) N- ~, |: M% X( A$ w- hcolor=(color>=MAXCOLOR)?0:++color; 2 [3 B d; K a2 r2 l
} . |2 Q8 |0 B: D- r3 ]9 j
} # r2 D. ~" L5 r8 ?" w
closegraph();
" e7 T6 D0 x9 n. [2 l! H} 【程序61】
6 ~# U5 J, G2 |( r$ d5 s5 S& Q6 _题目:打印出杨辉三角形(要求打印出10行如下图)
' E) h3 ^+ ?& n# ?1.程序分析: % U/ A( N; b( a. C
1
; ]. o! i6 F5 x1 1 % T3 `$ m( o/ \" O2 M& r
1 2 1 # G3 H+ Z" t) M0 z' ]# {* r
1 3 3 1 4 a6 u2 L$ s. o. T/ r: X/ j
1 4 6 4 1
# r" d/ ?6 e1 S1 o( A4 q1 5 10 10 5 1 3 c* w: E6 E2 L& {1 G9 {9 U
2.程序源代码:
9 \" }! f4 R/ y" ]2 ~4 U+ ?% Rmain() / h4 f( [2 p) M
{int i,j;
4 Q0 I6 O. A5 l) W3 Oint a[10][10]; / _* [$ s4 a+ g8 M; B5 \% Z
printf("\n");
0 z) v) X2 g' J |6 h6 [for(i=0;i<10;i++)
/ h/ q( {- Z; w% y6 I* @( }{a[0]=1;
( w" W! D5 l" H3 ^ `6 }' ta=1;} 2 k/ J! j; r+ x# j9 u+ h
for(i=2;i<10;i++)
) y; r, U+ G! y5 K0 O0 k, f3 a3 efor(j=1;j a[j]=a[i-1][j-1]+a[i-1][j];
# [4 Z, L. |3 h) a* a+ pfor(i=0;i<10;i++)
# h6 ?, o2 M9 _/ q5 p$ @{for(j=0;j<=i;j++) 3 N, H7 n6 _# _6 ^9 b6 q2 m
printf("]",a[j]); # f& v2 ?4 ~5 @
printf("\n");
5 u. Z5 i2 F* ?) |}
2 r3 _9 B* Q2 M, W# P}
], Q8 c+ l( Y$ b( M==============================================================
" X3 K8 h7 ]# ] m% K1 T【程序62】 4 S5 i# c- i9 O
题目:学习putpixel画点。
s- ^$ O/ P |7 O* ]1.程序分析: 9 t6 N' c/ `+ w* f4 q/ I, N4 d7 f1 T
2.程序源代码: $ U3 \' e$ L% f# Y" y7 a0 b
#include "stdio.h"
& {4 i {8 h q/ S#include "graphics.h"
! `5 W0 V- J' v3 {% b3 U( Mmain()
: w: t6 t* {5 b{
6 K' j. q9 _) C% k4 Bint i,j,driver=VGA,mode=VGAHI;
) f" E4 T- v R! d+ Vinitgraph(&driver,&mode,""); 2 o' X2 j: c) D7 G
setbkcolor(YELLOW); 9 i' T" Z, g# ^2 l* _
for(i=50;i<=230;i+=20)
' T: u4 ?& e1 d0 Z j! lfor(j=50;j<=230;j++)
+ ~9 a* H" x! Q1 f) Y% C' {0 c Hputpixel(i,j,1);
+ G1 O: q2 _8 A3 `3 p+ kfor(j=50;j<=230;j+=20) ' w# U( Q/ V# A* r
for(i=50;i<=230;i++) + D$ K" `8 S& i: z0 `
putpixel(i,j,1); 4 l% l; D$ f, ]6 Y) d. j* v
}
+ ]8 J: E) q( ~' u# `6 e3 N============================================================== & S& {9 C' g6 O" O
【程序63】 " k( L/ I0 k1 E
题目:画椭圆ellipse
7 E3 P! T, H! X7 j1.程序分析: % O' h8 B7 o S2 t
2.程序源代码: 7 B0 o' T% D+ d6 K& l' E
#include "stdio.h"
/ l& K% @$ G0 S# F5 @7 n$ z7 g9 Z#include "graphics.h"
6 c" J4 v G$ \3 _4 x#include "conio.h"
+ k" {) p; V- A% [- K2 m4 K( j/ K$ e3 Fmain()
, [" a' \2 R0 m: _: K4 Z! m{
3 h$ S7 B. h( W7 ^ P1 {3 _int x=360,y=160,driver=VGA,mode=VGAHI; 1 B J( a9 F9 f! L# S
int num=20,i; / ^. Z+ [& s. q1 n! m: O) f9 ~
int top,bottom;
* y4 ?9 n0 O; _" c! J& Einitgraph(&driver,&mode,""); ; m" @; a, G: E4 s, L* e
top=y-30; 5 m4 }' L4 ~0 v: G0 p6 ^
bottom=y-30; % |1 C& b3 y9 ?3 Y
for(i=0;i{
' H! U6 A7 z) ^2 x# a- J0 Q4 gellipse(250,250,0,360,top,bottom); : c* {+ `9 c2 b P; f$ W3 B, E
top-=5; # G) ?" x; I2 \( f) n; ]
bottom+=5; , j1 n! x- A7 S8 e( R. @5 v$ j; ~
}
9 {6 c5 W: L4 E7 Cgetch(); , M9 p8 K% \8 Y
}
' k9 E M4 u. Y; T9 l7 @==============================================================
! S6 }" {. m8 c; G5 k/ E【程序64】
, r" w4 e+ V0 l3 \2 z+ _+ W/ f# H) _题目:利用ellipse and rectangle 画图。
, K; A- p! A% D+ ?( V1.程序分析: . l' ?5 a1 A% S# I6 h" R" W
2.程序源代码: 4 U9 W6 L0 i! ]8 f! y& P. v/ a3 R
#include "stdio.h"
* e% S' k+ G& c/ t#include "graphics.h" " U0 l. ]5 d! J( i
#include "conio.h" ! @5 q$ I. U( k6 C7 }
main()
- B7 }9 {; P1 c/ N5 z' s: q v{ 0 }/ e$ n7 b7 U+ k# `# O
int driver=VGA,mode=VGAHI; 5 K' `8 c6 H/ f
int i,num=15,top=50; 3 Y2 o% S( y) @. L! H! L5 V
int left=20,right=50;
- a2 }" Y& B2 [5 `/ h9 h( }, Qinitgraph(&driver,&mode,"");
. R4 F0 H- T. {4 q6 ofor(i=0;i{
0 E: p/ i6 X- nellipse(250,250,0,360,right,left); # k( u0 t4 R) @8 i+ ]4 Z* @
ellipse(250,250,0,360,20,top);
+ m" d7 J x3 U$ Y: w' o0 frectangle(20-2*i,20-2*i,10*(i+2),10*(i+2)); ) t/ j( \5 q5 i) s
right+=5;
) o' ]3 u( g7 P. B" lleft+=5;
9 z# M# _; K2 V% I3 `7 Y7 ptop+=10; 0 U* P! @1 X6 q) a0 X3 b
}
$ d! B0 U: O' Z: ngetch(); & x, X5 j, \; k
}
" a7 i# `6 f6 A0 u==============================================================
2 O8 @: K7 H# b" N! c) j6 j# d, o【程序65】
" [" c" u8 h% ` Y* R' C题目:一个最优美的图案。 # R7 ^* j5 V/ s7 D2 B$ g/ ?
1.程序分析:
% n+ e* s7 }1 X. C: `1 U% D2.程序源代码: 8 k2 @: Z6 q! d: v6 o4 U3 _( [
#include "graphics.h" 5 X$ [/ K! z1 o. S, U
#include "math.h"
$ `6 S( a, \. n# `" o' j' ?#include "dos.h"
! N; e# o2 _4 ~$ A#include "conio.h"
$ Q$ t. V& l, Q+ R9 b; ]' m( {2 q#include "stdlib.h"
1 [( r) I0 x" `6 X9 Q" V: v#include "stdio.h"
# k4 v9 u/ O6 P+ {+ Y$ q#include "stdarg.h"
6 u# l6 B& z2 q! l3 z, X k#define MAXPTS 15 ! {$ F2 A b+ V$ F. E/ ~
#define PI 3.1415926
* m. f/ |# v# t( U+ Ostruct PTS {
) y+ d) T& _6 N7 b5 j! u" oint x,y;
& z! P& _$ Q. p" K* R; }; `};
1 ?7 l- U7 O. Bdouble AspectRatio=0.85; / `/ M3 r& Y8 H; h. N% R% B
void LineToDemo(void)
7 T+ e( ]# n: j- q$ r5 _0 c{ 7 v6 \0 q! T0 w5 i# N) B
struct viewporttype vp;
* `0 I4 u' O5 O. m7 L: M" |: Z# Qstruct PTS points[MAXPTS];
3 l1 t% Z5 i- j( M" N f+ {int i, j, h, w, xcenter, ycenter;
8 j7 {$ a, V$ @( H+ g7 Hint radius, angle, step;
6 V2 z( M" ~8 Z7 Y9 }; \. j6 Ndouble rads;
7 K! \& D$ F0 R3 ?& Nprintf(" MoveTo / LineTo Demonstration" ); . M' e: }3 ?. c; _$ l
getviewsettings( &vp ); ( U, u: O% B! h% ]$ J9 ^- C1 d" \
h = vp.bottom - vp.top;
9 u$ L" [' W- Iw = vp.right - vp.left; , ]9 i8 s* S% s: }
xcenter = w / 2; /* Determine the center of circle */
3 S6 X: e/ X4 W: L* ^ycenter = h / 2;
- V; ~6 R$ k# N& ?7 ^radius = (h - 30) / (AspectRatio * 2); ! ]6 x& m* f3 p& t. P6 G
step = 360 / MAXPTS; /* Determine # of increments */
6 [- M9 M0 n6 Z: B, w3 `" z3 jangle = 0; /* Begin at zero degrees */
. E4 H3 k l/ V9 } y* X6 ?for( i=0 ; irads = (double)angle * PI / 180.0; /* Convert angle to radians */ # E( ], C b$ B, `& D' E
points.x = xcenter + (int)( cos(rads) * radius );
6 s; |* `& J. O X2 w1 _ }points.y = ycenter - (int)( sin(rads) * radius * AspectRatio );
0 s& n+ ]* Q9 b2 u6 gangle += step; /* Move to next increment */
5 T, ~% b! w6 k( }8 W} # J% g1 O) E% J0 `& [) ]" o. U
circle( xcenter, ycenter, radius ); /* Draw bounding circle */ , A% g4 i$ t$ o
for( i=0 ; ifor( j=i ; jmoveto(points.x, points.y); /* Move to beginning of cord */ 5 N9 @+ [- D% A0 Z$ i I
lineto(points[j].x, points[j].y); /* Draw the cord */
1 p+ q6 i3 k4 u6 a- S1 X1 R/ R} } } * f! J+ I6 U' Z/ w' }
main() % t4 J! R }4 G) G
{int driver,mode; 5 P8 I4 w& w! w0 h2 n; V+ ]
driver=CGA;mode=CGAC0;
6 v9 c5 d4 j8 Qinitgraph(&driver,&mode,""); ' S7 Y4 b: E2 y& k4 B$ S, U$ ^
setcolor(3);
! I! @" N8 ]4 s+ xsetbkcolor(GREEN); ) r1 O. E+ F! j3 j+ E8 d, V! r
LineToDemo();} 6 q+ B {+ `7 `0 L
==============================================================
. |5 G1 o: d0 h, a. j【程序66】
4 L+ w7 L8 {' a) D题目:输入3个数a,b,c,按大小顺序输出。 $ o3 A" N7 U# v! o, t( ^2 D8 u( ]
1.程序分析:利用指针方法。 ; s- I4 X/ Z1 x! B) ]' R
2.程序源代码: ( K6 U9 e [" e6 |$ m
/*pointer*/
; R1 Y0 w* d4 z1 Hmain() 5 ?; U' O! k! k9 s
{ 4 f4 K3 b: X; F+ w6 u# O" P
int n1,n2,n3; 8 p: }' K8 L" O' U% ]1 w& j
int *pointer1,*pointer2,*pointer3; - r' S) z- _& s
printf("please input 3 number:n1,n2,n3:"); 9 O6 H# j* o1 k4 W, Z
scanf("%d,%d,%d",&n1,&n2,&n3);
e! v2 R5 Q5 `. l0 kpointer1=&n1;
, B/ n# \* s4 F# Cpointer2=&n2; 5 O' b" o h) L& E. x" Z
pointer3=&n3; # [) K* }, n p: I
if(n1>n2) swap(pointer1,pointer2); , g7 x$ _! W: M5 p1 f: g
if(n1>n3) swap(pointer1,pointer3); & j B2 m; @ p. q7 V8 w T
if(n2>n3) swap(pointer2,pointer3); O# A X9 n/ q* N4 \
printf("the sorted numbers are:%d,%d,%d\n",n1,n2,n3);
' E+ Y3 G9 ]! z* ~} . s! Z& ~* H2 L# U- c, D
swap(p1,p2) p5 n' v: T1 [8 H
int *p1,*p2;
; m. I' D( ]" Y) l$ p/ Y{int p;
" h9 D! ~, t2 ap=*p1;*p1=*p2;*p2=p; 5 A3 O2 T* [5 z8 Q4 J3 z
} # z7 E- g4 p) I1 m+ D
============================================================== 1 {, b- e- A; i& K
【程序67】
# S) H' r# m7 _, D: ?4 I题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
8 L4 N& t# U- T5 V5 V5 c8 ^1.程序分析:谭浩强的书中答案有问题。 : H$ ^* _: ], C% S% v. j( }2 {# `
2.程序源代码: . X8 |! i# { f" G
main()
2 g- V5 F9 d" W{
: P3 o/ {8 _8 ^2 M* sint number[10];
8 p* v# M& f7 s+ N% q0 Yinput(number);
8 }& I. _8 ]* t+ ^$ q# c/ Amax_min(number);
6 O+ g* \% _& t5 {output(number); 8 i5 r T2 r6 d# z' ^9 f
}
7 {3 a, g% X6 Y, C& Qinput(number) - b* R4 h u( D- p3 s6 b
int number[10];
2 F5 K6 E3 `' m5 k! f{int i; 0 o9 \( n4 k' A5 }/ O, w
for(i=0;i<9;i++)
) e6 U) k- D8 l7 rscanf("%d,",&number); 7 ]$ j. j; ` k8 V% c+ D& J; s
scanf("%d",&number[9]); 8 Q7 {* j2 h2 I9 F. t {
} * G! Z# ~/ N$ j: I" _. U: m
max_min(array) ) f3 f0 p3 r9 p0 D' @. F
int array[10];
; h! r" W/ \. ]7 f* E9 R{int *max,*min,k,l;
/ `1 n+ l9 {5 z, uint *p,*arr_end; / A6 X3 [$ f8 m( d/ B. F0 t
arr_end=array+10; ! \1 E: f! ~1 ?
max=min=array; # f1 B5 ~: W9 d1 U' k4 H/ O2 l
for(p=array+1;p if(*p>*max) max=p;
" v/ E- h' J) k- k" v2 |) Gelse if(*p<*min) min=p; & K3 E" j- A u/ R0 Y- w
k=*max;
* j" u/ z$ y5 s# W$ Il=*min; . Y) {2 ^2 s/ a- w6 D( n
*p=array[0];array[0]=l;l=*p; , b5 N" Q6 _" L. |& G% O
*p=array[9];array[9]=k;k=*p; , |4 |- I( J# R! F2 @- `8 a' d
return;
2 i! F1 f; D. N$ w& Q- |}
3 L: u0 I( I6 U' F' L1 X* k: M2 Joutput(array)
+ F& I3 h( [9 g+ [2 y) ]3 t( dint array[10]; 1 x4 o, z9 u1 ^0 X! _3 t/ }
{ int *p;
! `& ^4 _2 Q9 r/ m. w2 Efor(p=array;p printf("%d,",*p); + ~0 e; D Y& x3 C1 n" @
printf("%d\n",array[9]); & t( I, `5 b0 F# d
}
5 F; S6 G: K7 z8 p0 g$ u: k============================================================== 4 G; T0 f$ S: N2 A3 Q# N# {
" Z v% j; ~" d; {6 X |