EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
【程序50 】 / C0 l1 Z) n& k7 \
题目:#include 的应用练习 Y' Y/ y! u: D3 U& E
1. 程序分析:
$ E0 K" Q5 ~+ b2. 程序源代码:
& W# x' L( _- L) @8 @test.h 文件如下: 9 y) s5 _0 T2 V% t
#define LAG > $ b0 R2 w9 ^. X# c1 {1 X- I
#define SMA <
! F2 `: x$ O. D. P+ Y0 J0 N- z#define EQ ==
: @7 A' T6 U( K1 J* @: L#include "test.h" /* 一个新文件50.c,包含test.h*/ ) y! d/ F. A* p5 T9 y
#include "stdio.h" 8 E& c; t5 ?) ]! Q! ]
void main() 0 |7 _9 ^. r, W7 r4 O3 V) m; {' [
{ int i=10;
1 B1 E+ i* V7 z& O! D9 @int j=20; 6 f5 F( c# z& d
if(i LAG j) $ s. M3 `" S( o# O5 C
printf("\40: %d larger than %d \n",i,j); 7 Z, a9 Q$ H' r/ k* q
else if(i EQ j)
0 l) V1 k& m, G5 Rprintf("\40: %d equal to %d \n",i,j);
. m5 n! a/ j+ w2 c2 r Belse if(i SMA j) ( S x* Y j4 H$ L* @ |* P
printf("\40:%d smaller than %d \n",i,j);
3 j( ^% G5 ~# felse
- B: k; [# e3 b: m3 j2 @# Mprintf("\40: No such value.\n"); 5 \9 k: n) Z: d9 @
}
& e! ]. a8 X8 y, ~! V6 P3 @1 I【程序51 】
0 i8 r+ b. r5 H) ?3 e+ M/ Z9 F0 b题目:学习使用按位与 & 。 7 p- q3 }2 c( m0 ]3 ^$ A7 R$ C
1. 程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1
( v, X, T- w$ `2 h' L% D6 Y2. 程序源代码:
. s! N3 A' i4 Q; F#include "stdio.h" : e2 u( n# Z4 S J- q
main() 5 B2 b: ]1 T. w# s
{
; I' @0 p% x, Y7 B7 P# Lint a,b; & x6 `# h' {3 E2 n
a=077; & L9 \' b, ]/ x X8 a# ?. b! x, w
b=a&3; ) t& S+ o' B2 o% c6 X/ K8 u4 h# F
printf("\40: The a & b(decimal) is %d \n",b);
( @ g6 k \) \* t+ `( k, R. Ab&=7;
0 w8 U3 Q4 ]5 w7 i0 m0 iprintf("\40: The a & b(decimal) is %d \n",b);
7 }* Z8 V: L% e4 K% `8 i4 e}
0 G' G% W1 l) Z& g==============================================================
5 H) y$ x0 ~8 Q& j- Y, j* V# N! _【程序52 】 " F; N e6 B, X4 O+ i( ^' X& k, @4 y* F
题目:学习使用按位或 | 。
( f l; @& n, G( c+ n% f1. 程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1 : z5 b4 x4 n/ t5 [
2. 程序源代码:
) g. A+ Y" n2 `0 x#include "stdio.h"
. o1 C; M) N! L* |3 g7 l. Wmain()
/ [, t5 G8 |2 G" c+ ^0 f3 Y6 g{
4 j) H# n0 V3 X. p5 gint a,b;
' W! r2 v: R% F8 e+ J6 @a=077; / S$ O) q; P1 r6 R; g8 r
b=a|3; ' F- H- f' Q6 P
printf("\40: The a & b(decimal) is %d \n",b); , ^1 f3 w7 N/ _' T, P6 F
b|=7;
- ?: q, O: b) t6 ?) ~6 j6 Mprintf("\40: The a & b(decimal) is %d \n",b);
0 L5 Q% l0 E8 O3 C. z$ C4 s} - u9 h- R1 ~* e( I' K
==============================================================
4 C N/ Z. U# N# `) V【程序53 嵌入式信盈达企鹅要妖气呜呜吧久零纪要 】 5 q" ]. K( M* A7 D+ W3 Y% y0 ?3 P
题目:学习使用按位异或 ^ 。
2 ?1 o& ~7 |5 R1. 程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0 1 F' z6 j; W8 P# z( m
2. 程序源代码: $ q9 V( u4 M0 s( s7 \8 H
#include "stdio.h"
# X0 R g4 A& |( ?! [7 l3 S: kmain() 4 |* ?' @3 R& s2 a# p! |2 D Y5 R
{
! i3 ?2 U- G* i& ~int a,b;
9 y5 {% r, R0 g/ l$ E6 aa=077;
( c& k9 M* Y# ob=a^3; 5 _9 {1 v9 @2 a2 ^+ X& \
printf("\40: The a & b(decimal) is %d \n",b); 8 d% `! @6 }. A; K! ]: L6 B: X
b^=7; 7 S" {/ @* N$ c2 q2 y) X
printf("\40: The a & b(decimal) is %d \n",b);
4 Z$ \# F: ^6 [} 5 a0 I' F# f% l+ e( |7 x
============================================================== 8 F+ w2 b J8 |
【程序54 】 5 W- L. R2 Y2 N, @
题目:取一个整数a 从右端开始的4~7位。
+ v0 }5 D; a) w% w* u程序分析:可以这样考虑: 1 r0 m$ Z$ x! L: a
(1) 先使a右移4位。 / v. X# V+ V+ m. L
(2) 设置一个低4位全为1,其余全为0的数。可用~(~0<<4)
3 b* r' |7 A/ L0 j2 {' ?5 w(3) 将上面二者进行&运算。 + I- C- R# f- U9 ~$ K6 O7 d
2. 程序源代码: , L" {# v! n1 ^0 O. X( ~) x
main()
' V# i$ \/ s) }, q5 x f) ?; e{ # U- |# [( k1 i
unsigned a,b,c,d; : x' q5 y! | z. n- ?0 z" h
scanf("%o",&a); & A+ n4 L9 H7 r7 ?2 j
b=a>>4; ) \ E; o+ D3 x, {; | v6 T
c=~(~0<<4); 4 p% s2 y4 U; l& G/ s' S' f
d=b&c;
5 [' \2 {+ j# a9 oprintf("%o\n%o\n",a,d);
; H/ ]) [4 A% v5 l! Y} - c2 O' t# {" [; _# B; R% {$ S
============================================================== 1 R5 k. o; a1 L- Z( J8 F
【程序55 】 , E4 x8 }6 D$ Y. i' a$ ?
题目:学习使用按位取反~ 。 % d* q9 U; C; b! D
1. 程序分析:~0=1; ~1=0; ; C/ ~* a' m. m+ u4 S# f3 e# z) |
2. 程序源代码:
6 S' ~0 q" e0 _7 Y#include "stdio.h" % u9 V1 v: N. J* y; J9 f& d
main()
* l; ]3 @1 g, U; u2 O }3 b+ }$ X. }{
+ d) ~4 T: g! y' ]- Z" o6 M; nint a,b; 0 E! X4 S6 ]+ |7 w
a=234;
% r3 Y/ J% k9 [- fb=~a;
+ L( \- ^$ s4 M k& b4 J2 L% o$ aprintf("\40: The a's 1 complement(decimal) is %d \n",b); 5 D. j9 |1 r/ q2 q, l) F
a=~a;
4 _; G- K- s% fprintf("\40: The a's 1 complement(hexidecimal) is %x \n",a); ' l7 z0 H- z8 [) @ q+ ?
} $ O, Z l2 i4 U( N& [
==============================================================
2 V! B! e. S2 z9 z* d【程序56 】 9 s7 I( s6 M* a2 V
题目:画图,学用circle 画圆形。 9 c' Z; I2 L" E# J
1. 程序分析: 6 t' t1 _* O x# t, z) k$ ~# Q) `
2. 程序源代码:
2 _" m# P) Q) `3 Y/*circle*/ 3 Y1 J, l+ |$ H' K6 W4 q
#include "graphics.h" 4 Q0 |* ]+ j% i+ e
main()
8 ]. f# _0 s9 I6 F& _6 e9 i2 B{int driver,mode,i; ! @4 H) R+ V/ C- ^; O- ?3 w; O! F& k
float j=1,k=1; * `; q4 e$ o$ v, g
driver=VGA;mode=VGAHI;
( Q8 N7 k1 ?6 l' B- P' Ginitgraph(&driver,&mode,"");
2 n: k6 f7 `" w& }, ysetbkcolor(YELLOW);
- e! o0 I) f* q- Efor(i=0;i<=25;i++)
% l2 g! ?% \4 j6 V7 e" X" F1 v{ # a1 J- U3 x2 T! t1 G
setcolor(8);
8 F* v: Y- h! ucircle(310,250,k); ; @! O# Y! N% D/ Z- c3 B& n) T" ?4 w
k=k+j; 3 z) @0 Z. e4 f% c) f# P+ i
j=j+0.3; 2 U% c' i' ~5 q
} 2 [& Y4 i+ |' g" B: F
} " m: A( O" _& M0 Y% I
============================================================== 2 ~9 [- d# F! J2 X
【程序57 】 3 g# v3 D' K5 G3 n3 M) N
题目:画图,学用line 画直线。 # i: @* U; V3 _- I# a
1. 程序分析:
, ] Q2 Y! b$ u$ Q3 `9 o4 W3 b2. 程序源代码: 3 |. R! I& ?" _! Z2 X( ^* s
#include "graphics.h"
4 z( [$ J! K/ x& Fmain()
% P- _: P; `6 i, C/ t m{int driver,mode,i;
* k( D% N0 C1 F! ^$ F$ Ufloat x0,y0,y1,x1;
9 r) F0 ~: t2 D( Nfloat j=12,k;
) ]3 j. k3 ?. m) X V# J4 p Kdriver=VGA;mode=VGAHI;
7 B& w. b% B7 ~& uinitgraph(&driver,&mode,"");
' |0 j/ j5 x) zsetbkcolor(GREEN); 4 U6 [. e7 Q/ @( F7 @7 Y
x0=263;y0=263;y1=275;x1=275; 8 k9 [$ f& D6 ?2 I
for(i=0;i<=18;i++) & E, N H! o5 ~8 c5 O( c+ j
{
, n3 N ~. R2 ^4 p; Fsetcolor(5); 9 U! Z0 y1 \1 m
line(x0,y0,x0,y1);
. |6 V2 P6 l5 O4 U4 I" vx0=x0-5;
8 d3 T D, |: @ ny0=y0-5; 7 V3 S) P) j# I% @- T' V& d
x1=x1+5;
" W( w) C/ w; O) [% [1 O$ Ty1=y1+5; 7 C0 d7 q) z) V% V, ~
j=j+10;
3 ^ e0 }4 t! V8 v% d4 t% p9 s} : m# s k; W5 u: ]
x0=263;y1=275;y0=263; / A& u, p$ l, e
for(i=0;i<=20;i++)
( {# f& J* V8 F7 |{ 6 m$ E! `/ `. _/ g+ r. |. I$ f
setcolor(5);
( ^) k& q9 ?' V# ~$ t9 O9 uline(x0,y0,x0,y1); ' [9 x I6 a0 Q
x0=x0+5;
9 R& `+ k! p) ]y0=y0+5; : w1 `* J( }( V ^
y1=y1-5;
0 a' ?0 Y l" m8 B} 4 d! r5 {% H, l: i y: y5 Y8 M
}
/ g( v$ V$ ^# q============================================================== ' j0 t& o8 l4 Z, e y" \
【程序58 】
) @, l9 B. K$ [0 j/ [题目:画图,学用rectangle 画方形。
8 s: s) r A1 }1. 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
/ O/ N) D3 u4 F w2. 程序源代码: & O+ {( A. _* H: X
#include "graphics.h"
7 y0 u6 c: W; w- m, `5 H# Mmain()
) e' w( t( t: B0 |$ z9 ~{int x0,y0,y1,x1,driver,mode,i;
( [! Y1 G3 A" C1 _. Zdriver=VGA;mode=VGAHI; / O. y8 R3 N) j7 J* O% `! A
initgraph(&driver,&mode,"");
& W2 x. ^, P. ~/ Q; F$ Y/ {% m7 ^: v5 Bsetbkcolor(YELLOW);
. x/ r' D* G5 T3 V- O2 M! ]x0=263;y0=263;y1=275;x1=275;
/ a, X2 w1 t6 N% V6 y9 Ffor(i=0;i<=18;i++) " ]& p4 A1 k3 @- f
{
2 H2 S. ?' F$ psetcolor(1); }$ f* {4 }1 J9 R9 S
rectangle(x0,y0,x1,y1);
) a. H9 u8 [7 r5 J8 O! \- _( zx0=x0-5;
+ p9 R; t' j0 ey0=y0-5;
7 ?( a$ W# {0 y- `- v1 Dx1=x1+5;
3 L, x# E. {4 k( H( O: Gy1=y1+5;
) B' _4 }. C! E6 N$ g% ^) }* n0 C} 3 S+ Y& p5 }! n C! }% b
settextstyle(DEFAULT_FONT,HORIZ_DIR,2);
+ \# c$ `( [2 x. p' N, H, louttextxy(150,40,"How beautiful it is!");
$ m4 Q+ r! Z9 m( n( Z1 `! Vline(130,60,480,60);
" s0 B5 d! I9 A: j2 n) }* psetcolor(2); # m* r7 h! j8 d5 [* s h/ d. R
circle(269,269,137);
( p! t/ u0 g7 ~/ X7 N' P}
' |( v! W# r0 p' d* ~' i==============================================================
/ }8 N' S4 \1 ^ X8 Y% n【程序59 】
) l# T, D- B8 R; q1 a( T8 b' m题目:画图,综合例子。 * Q X! \, c' _ W Y) l8 k1 F7 E
1. 程序分析:
) s) i! @/ g, `8 R% M# C9 G* q( X2. 程序源代码: 1 ?# i7 W/ R! p. v5 z4 E2 Q2 B; |6 l
# define PAI 3.1415926
& k) | d2 p+ @2 \4 l# define B 0.809
1 R* g" h. u. |9 ^# include "graphics.h" 3 E _3 w! f, }; A& r0 _( z6 d
#include "math.h" ( U' r ?/ z/ e6 B
main()
/ p& G9 p/ V* \) i' C- s{ . U0 l$ A0 V! T2 P) b8 \- u
int i,j,k,x0,y0,x,y,driver,mode;
0 P# R* M% R0 q% q* @float a;
0 p# z/ y6 k& R: edriver=CGA;mode=CGAC0; : ?4 ~- E; z5 M- }. d3 g! _/ v
initgraph(&driver,&mode,""); . e: p6 K8 c$ _& U( {
setcolor(3); # V2 e1 v- M% k
setbkcolor(GREEN);
$ @0 K& K% Q# b( ~x0=150;y0=100; 0 \" F4 ]: U# q& u: b
circle(x0,y0,10);
$ R! E' K: j6 zcircle(x0,y0,20);
3 b. o8 ~& p7 L5 @; z/ Zcircle(x0,y0,50); " |2 g# g5 F3 ~
for(i=0;i<16;i++)
% q- O' L1 o* F0 J0 H{
4 ], j. x! f( ^1 W, q8 g. K* ka=(2*PAI/16)*i; % z* z8 _3 L) Y. h, b
x=ceil(x0+48*cos(a));
5 K$ w! T. Q5 z" ]1 `& z3 `* `y=ceil(y0+48*sin(a)*B);
2 p0 X8 q% }. K' r5 V, rsetcolor(2); line(x0,y0,x,y);} * z- |( f4 O3 s$ s7 F- g
setcolor(3);circle(x0,y0,60); , u; B; _8 j6 H
/* Make 0 time normal size letters */ 2 w5 _8 T) r$ r' F
settextstyle(DEFAULT_FONT,HORIZ_DIR,0);
4 n, H( ~! V7 m3 couttextxy(10,170,"press a key");
! i" I$ _+ {, }) I* M) ^2 o e agetch(); & @" K" Q; Y7 Z
setfillstyle(HATCH_FILL,YELLOW); 0 q2 G" k) Z& S' |
floodfill(202,100,WHITE); + o) [; P8 R- f ~) ?( |/ H5 O
getch();
# { m1 Z# s" r2 C: o+ a" k9 ^for(k=0;k<=500;k++)
- k+ D b& x9 x5 s" A{ ( t% j! {! u* A2 N
setcolor(3);
; L! r5 u4 R. Z* `* gfor(i=0;i<=16;i++) 7 A7 w) K# B4 E% x: F/ Y" Y
{
, p5 L3 {* t4 K% G: x$ `, T/ ra=(2*PAI/16)*i+(2*PAI/180)*k; . E: o# q$ d% W% D7 }& o6 [
x=ceil(x0+48*cos(a));
- b7 M8 R1 {# N) `; c# T' J2 P) [y=ceil(y0+48+sin(a)*B);
( @0 o7 I. a5 ~' s: J0 Vsetcolor(2); line(x0,y0,x,y);
! }6 {8 q# N, v9 b& ]1 A# N9 G$ R} ) w; r& ?7 A' F
for(j=1;j<=50;j++) 5 {- A$ s4 z: s: \; s' k
{ ) F4 [2 a) o2 X1 u" q. c8 M
a=(2*PAI/16)*i+(2*PAI/180)*k-1; 5 K! U7 [3 f( d- D
x=ceil(x0+48*cos(a)); Y$ C+ ~. m, }2 w8 Y1 Z
y=ceil(y0+48*sin(a)*B);
1 U8 B* e" H1 A$ U$ k0 r' R) X4 yline(x0,y0,x,y);
( c+ ~# ^$ v9 m9 ]" S% O( e* W}
/ L4 Z k% ~# D9 w" a1 _: a: f} 2 ^. q6 b5 p& A- z
restorecrtmode();
( ]. H! K, `9 [: \}
$ X# t) ?. _5 h- y3 _( X! X============================================================== 9 k3 m# }# A8 w$ S1 D6 }' E
【程序60 】 ( {8 L2 S& k1 I( u. V) t
题目:画图,综合例子。
+ I4 x* @1 D6 o- g2 T/ J) F2 `$ g1. 程序分析:
2 y4 k+ y0 |$ W5 a2. 程序源代码:
~" T& D! X; X; L- l#include "graphics.h"
7 p+ ~. O6 v9 U# o#define LEFT 0
6 `" m( c7 P8 a#define TOP 0 * D0 ], ?( O# r ^0 F3 g
#define RIGHT 639 5 L1 I+ j4 {0 `0 t
#define BOTTOM 479
( C2 o) \' Y8 ?* F6 @" W3 F#define LINES 400 - C0 \; m0 P+ u+ E- F: r+ H
#define MAXCOLOR 15
# p" G" E+ o6 [4 F. Lmain()
; M; P$ d! T. ?8 G0 H* C, q{
5 f4 l' ?- p0 I0 T! s6 X; Kint driver,mode,error;
N; A* c3 W" v8 k" L6 Rint x1,y1;
k) n* z' J5 v( g+ Q$ _int x2,y2;
0 b4 V% y) y: ?! ^( j( S. A3 ?int dx1,dy1,dx2,dy2,i=1;
6 w" T) m$ X* l( ^9 T$ Yint count=0; + n. ]3 |/ q0 U+ T, D4 s/ b
int color=0; * t: R. }3 D; ]" t7 G
driver=VGA;
. v1 `3 e6 L5 u( G: {; Y* Q Qmode=VGAHI; 9 [& q# X# ^. N2 B
initgraph(&driver,&mode,"");
4 v* ]- M7 ?) D, v4 @3 Mx1=x2=y1=y2=10; 7 ~6 l! @$ u/ z5 d
dx1=dy1=2;
' q r- j8 y D# Q0 }- P7 V. f3 R ~dx2=dy2=3; 0 z3 O7 o6 {2 O( G3 v
while(!kbhit()) % \4 a* B/ q8 n B* e! ^
{ / X4 m" U+ J2 x6 l, ~4 A
line(x1,y1,x2,y2);
1 h# p1 E+ u* j. ^0 b5 vx1+=dx1;y1+=dy1;
2 M* f6 `$ r8 h. r0 u! Ix2+=dx2;y2+dy2;
2 |4 {; H6 n- W$ m' W2 N# R% J; y0 Mif(x1<=LEFT||x1>=RIGHT)
+ {5 Y6 m, P1 `& A+ J& Q: Hdx1=-dx1; 0 m2 ]3 Z1 o$ s
if(y1<=TOP||y1>=BOTTOM)
- y1 z5 M( S f5 {0 [* edy1=-dy1;
6 c1 K% y9 S& q0 |) ^, Xif(x2<=LEFT||x2>=RIGHT) # E2 y4 o' }' i! P/ _, M' C: Z
dx2=-dx2; ! y/ I2 D8 E8 F+ ~& q8 W
if(y2<=TOP||y2>=BOTTOM)
8 Z9 t. y2 t3 |; n; mdy2=-dy2; # w6 I& x7 g/ Z2 O$ H$ `
if(++count>LINES)
: B. Y2 Y* T* r4 ?6 I- v9 S1 M( X% s{ 1 ^* V1 c3 Y/ x" A0 P
setcolor(color);
8 H6 y o/ ^" l& R$ x3 A) jcolor=(color>=MAXCOLOR)?0:++color;
& v w( a* B6 P} : z4 ` P ^4 o* e; r2 `7 T8 _
} 6 o3 V" a" |( j
closegraph(); ( Z' B2 h% m( K0 W/ c& {6 h: C
} 【程序61】
% i* B% n: r+ p5 j7 {$ Y/ r! K题目:打印出杨辉三角形(要求打印出10行如下图)
& w+ n4 v% c4 ^7 b# w8 J0 L4 Q; k1.程序分析: ' Y7 N4 A+ g7 o& ~1 L1 a$ s* B# l
1
( d p% _0 u$ B/ ]% K1 1 1 l: Z4 F0 y) J
1 2 1
; w5 R7 f! s# g2 m+ c% E1 3 3 1 ) D" ?- h/ i5 T% Y8 u1 @- c7 j
1 4 6 4 1 7 F f3 q/ N% f% F+ S
1 5 10 10 5 1
1 I" ~, R# P) J; z. n( \2.程序源代码: 2 U! k2 q2 }. Z1 M, K ]0 u3 M; k4 F
main() ; c6 j8 w8 A: i8 g6 }) b
{int i,j;
0 [ J# y" Y9 r7 B4 jint a[10][10];
6 q) f9 H( |' t" w- {printf("\n"); : n0 x5 f9 W# h! C2 j
for(i=0;i<10;i++) ' Z5 Y# w5 i. E; f! n" B
{a[0]=1; 3 p; o- I7 p3 F5 j ?4 H2 I
a=1;}
6 c3 f7 c M8 g$ D6 A* vfor(i=2;i<10;i++) 8 N4 ~5 _2 t( s
for(j=1;j a[j]=a[i-1][j-1]+a[i-1][j];
4 R5 R, Y8 L0 k* U8 k) W) Dfor(i=0;i<10;i++) / ~3 t5 G* A" c
{for(j=0;j<=i;j++) . a6 ?, p& K9 ~
printf("]",a[j]); % A, Q3 N& i) Z$ X5 v% d
printf("\n"); + r8 C/ w: s3 c5 u- C5 n
} . [! ?2 F' P; f
}
( ~6 N( Y( K6 X7 {) q: w==============================================================
* a" i% s' S, Q) b- ?* q【程序62】 # R" C/ }* J4 T, i# t! ~
题目:学习putpixel画点。 # j" U0 A: \: M
1.程序分析: 1 k$ h$ b& I1 p) }
2.程序源代码:
. I# W+ t% @, `. A6 y* k6 T- t#include "stdio.h" , F2 J0 f0 ?2 X1 Y
#include "graphics.h"
; `$ y# n" [0 Z9 j3 u7 ]' J" pmain()
6 g8 }8 ^& B2 `* S{ ' L- u& M. T) D
int i,j,driver=VGA,mode=VGAHI;
' y) |3 r) `: b9 w4 {% ~initgraph(&driver,&mode,""); & a1 ?. S# Q4 _3 I I$ L
setbkcolor(YELLOW); 7 a2 n, d! u& G; D5 P, V
for(i=50;i<=230;i+=20)
W. Q0 f( z( [* x) A1 Tfor(j=50;j<=230;j++) 9 Q# Y6 a& q$ h& U* Y; P4 e; K: _. _
putpixel(i,j,1); : Y+ S: w8 Q% m8 h
for(j=50;j<=230;j+=20) % t$ h" r% m8 ^7 g. V2 {
for(i=50;i<=230;i++) : H% i8 Q5 b3 O3 f% {0 G
putpixel(i,j,1);
6 O" b) o( Y% P} " q9 J% T/ Y! \
==============================================================
; {/ m1 g- F+ @4 _+ N: f【程序63】 . O# D- v% |" o. e. `0 ^. H5 _
题目:画椭圆ellipse ' W. L9 } ~9 g+ d% a
1.程序分析:
, Y' o9 E: T8 C9 e2 Y5 B2.程序源代码:
6 K9 P; A! b2 @: d3 V5 M; s6 P#include "stdio.h"
7 v7 U$ w. o: o" V# d#include "graphics.h"
: P s) W' A4 m) q#include "conio.h" + K4 L5 v2 y- g2 {% w
main()
2 A% x u" x; @: P+ {{
7 N7 m- X0 N1 f9 E+ }int x=360,y=160,driver=VGA,mode=VGAHI; 4 U" R! w# W% e% q# c' Z+ f
int num=20,i; 3 f0 Q! @4 Z( Y9 n: Y
int top,bottom; $ v% k, F2 m7 Q) }
initgraph(&driver,&mode,""); v2 l! h. \3 }6 l' u7 d' j
top=y-30;
& D6 y2 |6 C W7 E5 e2 f: nbottom=y-30;
/ w: x+ u+ ~4 Nfor(i=0;i{
( v* {* I3 m( D1 K: I" F& u1 b9 @ellipse(250,250,0,360,top,bottom);
, q. @7 k0 J% ]: J( h! u" btop-=5; Y2 {- W+ L* C3 n' k( j P
bottom+=5;
' w6 U: o8 D6 f} ! ]9 y4 x, Z- \3 z- s5 o7 x @
getch(); # p1 W* \) k) E% M" L+ e7 \2 ~0 M
}
# k' ^& b4 u! k. n; l+ h============================================================== ! S7 h0 M% G9 p! o
【程序64】 8 ^# a% ?$ V* I. t' J
题目:利用ellipse and rectangle 画图。 $ q' l7 ~; e4 ]1 u+ ]7 J9 L
1.程序分析: 1 v( X) N4 f) W( E
2.程序源代码:
3 V4 A3 f3 T& e5 ]" e#include "stdio.h"
8 r' [: ]" E8 P3 e1 u: m8 H5 g#include "graphics.h"
) x7 ^ t/ Q* _2 S& {#include "conio.h"
% D, \: r+ O7 i' ^1 U* pmain() ' X d3 _5 z% j8 R! [
{
& Y3 q1 w {. s0 G" Gint driver=VGA,mode=VGAHI;
) b0 @; l$ q. wint i,num=15,top=50; 9 Y# Q ]8 m* h' h
int left=20,right=50; ! K |( P- J: U0 l, t
initgraph(&driver,&mode,"");
: V0 [8 {2 C i0 P Dfor(i=0;i{
; s# L! H$ ^1 E* o' Oellipse(250,250,0,360,right,left);
y) e) X$ q1 [; o4 nellipse(250,250,0,360,20,top);
& [2 u# j5 s$ C7 W2 }+ G' Nrectangle(20-2*i,20-2*i,10*(i+2),10*(i+2)); - k6 Z3 t$ n4 c: m$ @+ N6 G1 R
right+=5; % G' [7 q0 C) p) `5 O; l9 N
left+=5;
5 A3 l# ^( j0 `9 Z* r. | R/ _top+=10;
0 n$ C6 B( T7 d4 z}
" ]0 e9 j! d. L. `* ^getch();
8 N! R1 h' S( }} 5 s' y$ v0 x0 V8 T8 f( Q
==============================================================
, d; m+ }/ f2 o: M" Z【程序65】 ( `6 J: z4 C& A. a, a3 W. Y
题目:一个最优美的图案。 $ e( ~* N' P9 k0 B) {1 ?/ V
1.程序分析:
; c2 ?) }5 M4 Q; K( S( F2.程序源代码: ; z4 W3 K3 D: |, H
#include "graphics.h"
) T( l' z1 q: w' g$ S3 Z7 y#include "math.h"
- D; ?" l3 s. @. {6 x$ K3 y' ^" y#include "dos.h" - \9 C/ ?7 I: C
#include "conio.h"
3 ]* z$ N- X2 c) a#include "stdlib.h" / I4 ]7 |) q$ o% H# F2 u F
#include "stdio.h" : J9 ~5 N' T0 h* }) A$ T, Y. h
#include "stdarg.h" / X- a. w; g* P6 Z2 v$ n
#define MAXPTS 15
7 D4 R6 j& |4 B* L9 U#define PI 3.1415926 4 j3 }- r. S, }2 a
struct PTS {
; w. e" p' Y8 Z% X4 l, P( I4 q& lint x,y;
m C& Q2 z: K6 a}; + X, w; ]* j `2 b" V- Y6 A
double AspectRatio=0.85;
1 ~, s/ ~: a2 Y( d Jvoid LineToDemo(void)
: n" g# W9 f: l$ E{
# c# W% P! V {& n! Bstruct viewporttype vp; + l n2 f( G2 ^6 B# k' r8 Q9 Z
struct PTS points[MAXPTS];
) A( L* ~" ?1 k$ r7 _" ?9 u7 kint i, j, h, w, xcenter, ycenter;
- {- ~% G B7 Z4 d6 b9 Iint radius, angle, step; ; K9 H, o( B( P! ?6 |/ {
double rads; 4 Q# D# n% E) V" H, ^: \( _
printf(" MoveTo / LineTo Demonstration" ); ; u' H: i& `+ @ E! t* W
getviewsettings( &vp );
3 }. k+ `" H0 |" `8 s8 M% oh = vp.bottom - vp.top;
- T' O2 v7 ^/ l, E; T7 nw = vp.right - vp.left;
6 e1 R1 i( p) h" L% p+ txcenter = w / 2; /* Determine the center of circle */
I2 a# s" L! p* q0 @3 \ycenter = h / 2; 7 T8 C7 v3 _7 c6 @" ?
radius = (h - 30) / (AspectRatio * 2); 5 F! S0 [) h5 ~5 v' L4 I
step = 360 / MAXPTS; /* Determine # of increments */ . s" J, c0 L. u- C* E# @/ r
angle = 0; /* Begin at zero degrees */ 6 E0 q2 A& ~" g! U. j; B
for( i=0 ; irads = (double)angle * PI / 180.0; /* Convert angle to radians */ + v3 G& S/ k4 i1 Z8 h- o
points.x = xcenter + (int)( cos(rads) * radius ); - ~4 U @7 r) U1 ~4 i4 \
points.y = ycenter - (int)( sin(rads) * radius * AspectRatio );
' e8 A; P) V9 U. ]9 ?( L R0 H7 ^angle += step; /* Move to next increment */ " D0 a2 U8 y5 k) s, B0 f3 i
}
2 V' D' J/ d8 v L) ecircle( xcenter, ycenter, radius ); /* Draw bounding circle */
, u8 Z) |. f: Bfor( i=0 ; ifor( j=i ; jmoveto(points.x, points.y); /* Move to beginning of cord */ 7 t$ H+ k/ G! z* D! f6 _6 g3 k7 g
lineto(points[j].x, points[j].y); /* Draw the cord */
6 d9 ^3 f; s3 @} } }
- E" A6 S9 @( Y* ]main()
6 L, M1 X5 k% H- I6 ]+ j8 }7 g{int driver,mode; $ t& m0 q6 `2 L! u: ^
driver=CGA;mode=CGAC0;
! K8 O" Z; y" l) I% Xinitgraph(&driver,&mode,"");
! U0 X' j2 J) u2 {; k2 H2 x8 Ksetcolor(3); # g: n/ J1 o; a4 S+ h
setbkcolor(GREEN);
- k9 U- S2 ?3 M" rLineToDemo();} 0 y: \) o' C/ |' V
==============================================================
8 Z6 u) l/ G$ }' l- K; j( G【程序66】
8 ?0 {1 [1 c4 O0 i$ P题目:输入3个数a,b,c,按大小顺序输出。 : d% Z& _. L0 R& H' g5 O5 ^
1.程序分析:利用指针方法。 c% J+ Z0 ^1 q/ ?% x$ @9 V
2.程序源代码: & V1 A$ v7 ~) O
/*pointer*/ : B7 e* S# u8 R7 m F' y/ [; D
main() f2 d& R+ d$ \6 [" u) |
{ # {2 ]+ Z1 w* C- k
int n1,n2,n3;
. `" I9 c1 `1 M- Mint *pointer1,*pointer2,*pointer3; 8 {- S/ S7 S+ F9 v( Q. E
printf("please input 3 number:n1,n2,n3:"); , ^* P# C+ Q8 `
scanf("%d,%d,%d",&n1,&n2,&n3);
: M% O, y; g! ]+ v* P. o: e3 n4 e1 ?2 ~pointer1=&n1; * w4 ~9 D4 ~5 Z& L
pointer2=&n2;
+ m& G* Z& [9 p- ~: {pointer3=&n3; 5 k4 }5 Y& p9 d7 O& T" T* \0 a# T
if(n1>n2) swap(pointer1,pointer2);
( L' h6 V4 M+ r9 ?# {6 hif(n1>n3) swap(pointer1,pointer3); ! _. W6 ^$ \: B/ J
if(n2>n3) swap(pointer2,pointer3); E" ~" S# _, Y, W
printf("the sorted numbers are:%d,%d,%d\n",n1,n2,n3);
7 S% g- [- f. {: k7 I! ?}
/ c( P2 Y" B" Y5 J0 s0 eswap(p1,p2)
. X- C' m( v* u" L9 eint *p1,*p2;
9 H4 T) \7 w+ h. h% E$ E( v{int p; 6 n3 k- H# w" a' Z+ W* h5 t" ]
p=*p1;*p1=*p2;*p2=p;
' s0 b; y1 p( n2 Y! {} 2 ]0 X. Q) g1 Y7 i
==============================================================
7 v. n2 ^* o( J* ?; L【程序67】
. M9 T% b/ m; A题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
8 H; `1 T2 U B' d( h8 s1.程序分析:谭浩强的书中答案有问题。 0 ^% L) ]- L( j0 E
2.程序源代码:
, J$ f; D1 x1 x. Vmain()
) A' ~- O& W7 d{
2 J/ x( w/ U4 G/ h3 A/ B: Eint number[10]; 4 x8 P: T- y0 q) i& ~& _; v
input(number);
8 ^6 f1 y8 s( y. r* V5 W% O0 N6 amax_min(number);
& L3 t% F/ r g0 f0 `) R2 o5 xoutput(number); 7 h2 v& n4 j! D0 H8 J" m1 c
} 2 m* \# l6 j1 Z [
input(number)
9 ^1 ^, n% r- |# Z0 q/ ?int number[10]; 2 H1 ^+ I0 ^6 j3 T
{int i;
# s+ S; d; g e7 w) B& Cfor(i=0;i<9;i++) V4 W, W! f) m9 p( [* }6 _
scanf("%d,",&number); . J( }# ?! s `1 |$ P L9 E) \
scanf("%d",&number[9]);
! n6 W; y; O/ o9 c" w4 H6 {}
1 L- T0 ^) V4 b8 ^8 J rmax_min(array) : _- R5 [) l7 W \3 i1 _8 X
int array[10];
' G9 E6 t% U6 M- _2 C0 }{int *max,*min,k,l; ( }) m1 p T+ c) h; s |# J
int *p,*arr_end;
+ }' S+ B% d Uarr_end=array+10; 6 I; k0 h1 J% e
max=min=array; 3 {7 d1 S6 L% ~# A3 v9 R
for(p=array+1;p if(*p>*max) max=p;
8 K2 ]& [; J4 f3 b" e" M6 Celse if(*p<*min) min=p;
0 V3 E r# j% X* y. X F/ D* q) s6 Dk=*max; ~+ S, s: e: J, E y
l=*min;
4 j8 B/ _, M2 \1 h& b2 l*p=array[0];array[0]=l;l=*p; ) g4 H+ s* {1 A6 g4 J, |0 t7 a
*p=array[9];array[9]=k;k=*p; ' e& D, V) d3 m `
return;
% l+ }2 I3 n: p: G} 8 e, e3 S3 U- z0 b' G
output(array)
8 {/ Y9 g1 h' {# z) `int array[10]; . p3 C0 H6 N7 o- W. u! f
{ int *p; " \ M# S) c" A8 N
for(p=array;p printf("%d,",*p); # t. V. N! k9 n# p: c; n& e0 ?
printf("%d\n",array[9]);
3 t; O! O7 S- t. V. D7 {0 }}
7 d1 v, O9 E# r3 |2 W+ G( s============================================================== ( E- \' f# d, y( b' D: \, K) j
4 a: ^% o* d: ^7 B( L4 S. d |