找回密码
 注册
关于网站域名变更的通知
查看: 465|回复: 1
打印 上一主题 下一主题

C语言经典算法50-67

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2017-10-9 16:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
【程序50  G! ]  s( ?0 E- ~% ^0 ?1 c
题目:#include 的应用练习
+ s! J8 l1 Q+ P8 `/ W2 h& b/ `1.程序分析:
1 Y( \* j4 C& p2.程序源代码:
( F# }  r9 ?8 N+ f4 ]4 _1 M7 r& \! Rtest.h 文件如下: ; M+ d6 \( @- L, R8 ~- f8 h9 F* S
#define LAG >
3 V2 F( C' C: a; i#define SMA < ; F, n& m6 t2 q8 F( p& T5 F
#define EQ ==
4 ^% Y* g  o( j, c% q8 O#include "test.h" /*一个新文件50.c,包含test.h*/ ' Y7 \' k/ A: H! a  N, s  R
#include "stdio.h"
" t( I" r; s' _5 m8 b# m% o- p& Y0 lvoid main() # ]) a5 P( q: Q9 m5 p% w1 P$ a
{ int i=10; 1 t! Q/ {3 G" Y  Z- @/ K( e' F  K
int j=20; : s6 N8 m7 \3 Z5 |* X/ _
if(i LAG j)
9 K  x; A- Y6 Mprintf("\40: %d larger than %d \n",i,j); / t# \3 G. O1 e" r# ?& b% Q5 P& C
else if(i EQ j)
. p8 a$ m& n: \, E- Jprintf("\40: %d equal to %d \n",i,j); ! z/ P/ c1 C0 X) |
else if(i SMA j)
: e  S, b, Y: F9 p: H5 u3 W% W- W: Lprintf("\40:%d smaller than %d \n",i,j);
, Z" U0 T) T8 b; M1 y# F% n1 h/ Felse : ~8 Y3 V2 ~" I+ ^, V7 D" R
printf("\40: No such value.\n"); ! {: o8 y! U$ q, U8 d
} % U% A2 }; G, }' y
【程序51
7 }% \( v* R. o6 E题目:学习使用按位与 & + s" B; y8 K/ ~. V" n3 \6 o
1.程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1 9 d4 z$ c+ u5 ^+ L
2.程序源代码:
4 _  T$ w6 {+ B#include "stdio.h" : m! C+ S8 h1 G, x  p
main() + K3 j" p2 a% ~' c- g' n
{ 5 k, }' t8 A/ S7 t" R
int a,b;
7 G( f1 B2 m% S6 J7 t4 J! W8 ma=077; . }8 [$ B& S3 Y0 [  y
b=a&3;
6 j( T# o* C+ `7 ^9 ?9 m& H+ yprintf("\40: The a & b(decimal) is %d \n",b);
1 e# [5 O& f, C4 zb&=7; : x$ @" m' Z. S! m  g
printf("\40: The a & b(decimal) is %d \n",b); 3 k1 T  m' U- |. h, v: y
} ( _& S% ]) f" W" q: y, z
==============================================================
8 n+ g9 l6 i9 O9 L【程序52
: c# n7 d# G+ Q' @题目:学习使用按位或 | . D! s( [9 @' I' T9 P, N9 W
1.程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1
! S7 U3 E! O7 H- O  ~2.程序源代码: " B' A. Q; M- K4 ]& l- {
#include "stdio.h"
; K) Z# ~$ S* v# Hmain()
. [# Q! N+ k+ x6 Y: C{
- g" |' i- D9 B% s0 |! Mint a,b; 8 [% ]' E$ x: l4 ^
a=077;
, {% _4 n* W  [( yb=a|3; ! p, d- {- y; }! }% ]9 y! I2 Q
printf("\40: The a & b(decimal) is %d \n",b);
( [: ]$ P. |# L$ }7 Hb|=7;
+ t. g" c; U9 B. Nprintf("\40: The a & b(decimal) is %d \n",b);
; v$ {" N# h# G} ' N0 n; g' f( s7 [- ]5 C: v
============================================================== , W) E. I0 [* q) Y' n
【程序53嵌入式信盈达企鹅要妖气呜呜吧久零纪要 ) e; z1 R0 M! K( {7 N3 i6 \
题目:学习使用按位异或 ^ , t) @! M/ f) |9 ]7 x4 s, L
1.程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0
" i3 k( a: ~) J2.程序源代码: 0 ]# j3 B: Q& t' e% F) k
#include "stdio.h"
% ?9 ~2 D$ p( p: q& i/ ?main()
  G) n2 `. E# b8 G3 \9 P  a, n" @{
8 [: b4 @; v. g$ Xint a,b; 0 w0 l$ f* n" d2 d
a=077;
: q4 N1 X- k) T9 |b=a^3; - b1 m3 _& ~1 C/ A, a
printf("\40: The a & b(decimal) is %d \n",b);
5 t1 \1 s" l4 L& P: i  p' Gb^=7;
9 n% H8 \) _1 p% Sprintf("\40: The a & b(decimal) is %d \n",b);
4 I: u* a5 E# a. `# E  Y}
# X+ z+ R0 q. s* X============================================================== 1 v% B9 e+ j4 [( B1 G4 D
【程序54" v- ^" E" ?1 J- g* Y
题目:取一个整数a从右端开始的47位。 : l5 c) i/ T5 E( a- e2 D: R
程序分析:可以这样考虑: , ~1 K$ c" `( Y7 p, ]: b* w
(1)先使a右移4位。
9 g4 T% n2 \4 b  i$ {/ b% X(2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4) ( t0 p- G3 y4 G) z. ]) V
(3)将上面二者进行&运算。 % i4 W2 T3 {. n8 H3 N
2.程序源代码:
, J# A" d; d8 Z) ~8 y5 ^- |6 Tmain()
' p5 A3 o/ s# T* `{ ) ~. {' P- G) k4 [& h$ \9 l; g
unsigned a,b,c,d;
" O  F1 R, g$ Wscanf("%o",&a); , J  G# `$ d) _
b=a>>4;
  I9 c; V/ X3 r6 i/ g% x/ S0 }c=~(~0<<4);
$ K: B) S- u: T( b7 }8 p! Ld=b&c;
2 A2 R8 i7 k+ T* k* {7 Wprintf("%o\n%o\n",a,d);
, H9 @! n8 s6 O" L, |- u6 P% P} ! D/ P& V' {: E. T: A3 V
==============================================================
* W" N, o% ~' I$ x( V, E: |【程序55: @4 ^/ o- f9 N) |, H( Y- c
题目:学习使用按位取反~
8 \' {0 E# v) e! e1.程序分析:~0=1; ~1=0;
9 D) e( O" [5 V2.程序源代码: 1 r5 L2 t8 c& Z; C% ^4 k
#include "stdio.h" % K0 B9 \. R8 r7 t* A& Z- Y8 H
main()
2 h7 _3 L# Z3 G- {, q* Q. ^- n{ & l# ]; J4 }4 e; l* Z1 C3 h; J6 y
int a,b;
( A. P( W9 C: qa=234;
- p8 I4 J7 q. ib=~a;   F7 @& k. X" T% v* i  h! S
printf("\40: The a's 1 complement(decimal) is %d \n",b);
# o+ a% A/ R$ Y/ e# n* p' wa=~a;
9 c. H$ Y) Y0 H( {0 Qprintf("\40: The a's 1 complement(hexidecimal) is %x \n",a); # ]. d1 y# L9 l
} . @( A3 e% i- V, ]! `6 W. v
============================================================== ) }* E' {9 \. y2 G3 \3 ]
【程序56
* i* e- C. |  T# }% \题目:画图,学用circle画圆形。
6 b7 |3 j6 y1 ^; D) e1.程序分析:
% z7 E. A( v/ N1 s4 v) }" w" t2.程序源代码: 9 s. A0 d. T$ J, G3 m: |5 I
/*circle*/
5 E' x  R! i$ m* v( }2 y#include "graphics.h" / g4 z2 W5 t% N4 v/ n: }
main() 3 c9 ^. h6 D) c$ Z1 ]
{int driver,mode,i; 5 L# \% G2 z. `$ k
float j=1,k=1; 3 Z( [/ m* A9 U' c8 E) _- v
driver=VGA;mode=VGAHI;
9 v: t0 @7 r* X# S0 v4 }" vinitgraph(&driver,&mode,""); , _% G# D1 g" I; {
setbkcolor(YELLOW); 2 h# V% B3 F1 e  V; i# `$ g4 F
for(i=0;i<=25;i++) " a& z7 r) m) {/ u. z2 M& M
{ 9 @5 [8 M" d& l
setcolor(8); 2 [* j3 t- p1 v  w& L2 P- h
circle(310,250,k);
+ e" }+ y- N4 [, K; w: Z5 vk=k+j; # W9 O8 ^, I7 Q
j=j+0.3;
/ v* {" M$ N6 L/ M}
7 X3 e) p* N; f$ I( [; I}
# [; N  N8 t& t1 A" J==============================================================
# m! P0 q$ m( S8 v" y【程序57) L( L% p% ?$ I, G( o; w
题目:画图,学用line画直线。
7 z, D) J  R  f( r& ]/ z( O1.程序分析: - k, \4 b  I% e# j4 F$ f; P
2.程序源代码: % r0 ]' E: D2 ?1 k+ O
#include "graphics.h"
# \% r' f1 p9 }8 c# fmain()
! g) t* H6 d# u  l  r" I- z+ P{int driver,mode,i; 4 l  y' z' G: s. l% Q
float x0,y0,y1,x1; ! C' J6 s6 Y6 R/ v7 l8 p! h
float j=12,k;
, _% s* a8 D) R7 P( {1 Y" Gdriver=VGA;mode=VGAHI; : n6 ^& k. s6 M. a  t" [5 I
initgraph(&driver,&mode,""); ' ?7 Q7 I: Z* `1 l* i9 {
setbkcolor(GREEN); : w- _. J) h, z/ l7 j1 C0 `+ ~
x0=263;y0=263;y1=275;x1=275; ( s3 {' C9 r2 {/ G9 _
for(i=0;i<=18;i++) ; E+ r: ?, i% m% K
{
2 h9 z  ]5 B$ N8 S: i/ {+ Xsetcolor(5); 1 G6 ~/ A! c/ F# y* w
line(x0,y0,x0,y1);
1 C+ j0 m! ^  {4 E7 wx0=x0-5;
& Q9 l2 C# o6 n  Ay0=y0-5; ! W/ n& o' ~. r
x1=x1+5;
% U; g' [! `  Sy1=y1+5; " f) H9 `* L' s, n1 D7 o2 c
j=j+10; - W1 u8 [$ J" T1 }. _5 l
}
! W+ a! H' C4 O. }- x, hx0=263;y1=275;y0=263;
1 o$ `/ p2 G2 E. S) p  a5 Xfor(i=0;i<=20;i++) 2 V7 r/ P& u' W/ U2 h2 B
{
! V8 s: B, }6 Y2 ^/ N! W) Rsetcolor(5);
- ~8 `: s0 I3 o; u- O) H7 C: M5 [0 _line(x0,y0,x0,y1);   B; E/ i: {3 j2 z0 p: F- ?* v
x0=x0+5;
' S/ i. G0 {/ z, ky0=y0+5; . L9 w! c6 t# b. n; c( P' m
y1=y1-5;
/ i" t5 r7 ^! q+ u5 d, W& w8 I1 r. ]9 \} 0 W; z+ l1 ^9 {; d7 Z
} 9 B( X& ~' O/ Q& Z4 G. T
==============================================================
, h1 c: p; P) f4 g【程序58
. g" |" `/ ]  v. s7 |5 J5 A$ ^题目:画图,学用rectangle画方形。 ; T5 H* H; f  s
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 - I' M& i" H* ^$ v2 N: ?/ i6 l
2.程序源代码: 1 C/ q$ L: `* J
#include "graphics.h"   J. K/ ^' }# B  q& _
main() % I. K3 v) Y$ V8 B0 f( \( i; H) K
{int x0,y0,y1,x1,driver,mode,i;
. A, M7 i& x  Q" v* L, {" idriver=VGA;mode=VGAHI;
9 h" k  n, f- B3 e& _initgraph(&driver,&mode,"");
8 z+ z! ?: @3 d5 A* \setbkcolor(YELLOW); ) t: Y+ K- s1 J) m- D
x0=263;y0=263;y1=275;x1=275;
( e8 r: A# P  w: Qfor(i=0;i<=18;i++)
2 W% Q) m5 D8 r( a  X2 v{ 6 z# X6 F- X+ h8 P3 Z" r0 K
setcolor(1);
1 g+ o. W- @  b9 trectangle(x0,y0,x1,y1); 6 N6 X' A4 J; \8 m) K
x0=x0-5;
' p! ^8 ^/ y% U+ {6 [; gy0=y0-5;
4 `3 d6 o1 t3 O4 v& t: T6 n- Dx1=x1+5;
% ~0 z) X! ?8 u. Dy1=y1+5; % r; g! w  H& w+ [' u
}
* W5 c+ t  u  T) R# s' H2 osettextstyle(DEFAULT_FONT,HORIZ_DIR,2);
( d+ s9 x2 h( x7 r4 |9 ~) I/ ?outtextxy(150,40,"How beautiful it is!");
5 H7 [' Z' ^5 `. ]7 o1 w5 mline(130,60,480,60);
3 t1 s# N; Q* k% U/ w2 Qsetcolor(2); ; i8 U2 ~3 i0 i9 {( d! X- \; ~
circle(269,269,137);
0 M( \' I3 p4 p# i/ T}
0 q/ ?: a6 s4 z: _  b& A==============================================================
/ r+ t+ ^! x0 W7 d* _! s【程序59
3 j6 p1 F3 q+ y! ^; Y1 l, M题目:画图,综合例子。 3 X: a+ I/ P5 }$ c1 j
1.程序分析: - m2 v& H+ P) n3 ^2 g8 K! V
2.程序源代码: % ]& ^! [1 Z1 _; A( Z) B* S
# define PAI 3.1415926 3 v0 _8 w3 Z; v: M
# define B 0.809
; O  t& @8 \* y+ }4 \/ e' o# include "graphics.h"
0 S- J, b, e, F) P#include "math.h" 2 G9 ~7 w$ m) h! j5 E
main()
3 [) @- R2 a* n) j) L+ I{   @' K4 I" W' L6 Z2 F5 n3 g- `
int i,j,k,x0,y0,x,y,driver,mode; ( i7 B* n3 O1 R' s
float a;
# x+ ?+ C/ n" H; l& gdriver=CGA;mode=CGAC0;
: R$ F# `( h) P: z# h: Xinitgraph(&driver,&mode,""); ( W$ W; B: L  O4 j9 q: n$ u
setcolor(3);
& u0 p6 W) [* q6 y  Vsetbkcolor(GREEN); 7 {& A" g+ r( {- {# U; o4 N7 k9 y
x0=150;y0=100;
+ F- J- b% D! x, A4 j/ ?& y. [circle(x0,y0,10); 0 {9 _) j0 z' I; F0 z
circle(x0,y0,20);
6 s/ U$ D8 e! e% Y4 w& m( h( |circle(x0,y0,50);
8 X3 \6 E$ C4 Bfor(i=0;i<16;i++)
8 t1 q' Z1 @* C% T  D{
- c2 u# E8 ], H  e3 \" J0 Pa=(2*PAI/16)*i; 4 F" _+ P) u) C; S* B. q
x=ceil(x0+48*cos(a));
3 u* L! h6 {) R; A5 py=ceil(y0+48*sin(a)*B); 6 F* e" I$ C+ U2 \5 I3 I8 ~9 {
setcolor(2); line(x0,y0,x,y);}
$ ]  r- Q4 U. ]% ssetcolor(3);circle(x0,y0,60);
4 C$ p) j7 `8 o/* Make 0 time normal size letters */
* @  z. |( _2 I: `; C! }settextstyle(DEFAULT_FONT,HORIZ_DIR,0); ( @* a9 ]- z9 g+ ?9 k' O
outtextxy(10,170,"press a key");
  v5 z$ J# {" ^- `getch();
4 c8 H( H) L6 ^6 w! hsetfillstyle(HATCH_FILL,YELLOW);
3 M' ^3 [" Z" o: h3 Sfloodfill(202,100,WHITE);
# Y& q$ F3 I" Q* s1 ^% Hgetch(); - ^2 o7 t/ \$ x  U- M4 r: ^
for(k=0;k<=500;k++) ( M3 R7 B$ v& {$ U3 W. l* V
{ 8 B$ \8 s) o- l
setcolor(3);
( {, Q" ^- s, ^' ]5 |" g; t8 L# tfor(i=0;i<=16;i++) , {; O0 p( S# \) P+ O
{ 4 `: X9 O5 @5 {# J: F! h/ d
a=(2*PAI/16)*i+(2*PAI/180)*k;
) c7 z0 c$ q$ h! ^) r# `3 I8 L2 i) gx=ceil(x0+48*cos(a));
* M& \6 b5 _8 E0 _% @y=ceil(y0+48+sin(a)*B); 6 X$ Q% O* \# @
setcolor(2); line(x0,y0,x,y); 3 h0 y" \$ u. B1 F  f$ V
}
- p5 T8 D3 T7 w' ~5 x5 {for(j=1;j<=50;j++) : E8 `% D8 @0 y0 C% Q
{ % T) J7 ~- |* f+ f6 B
a=(2*PAI/16)*i+(2*PAI/180)*k-1; $ S) e; J0 T5 ^! A+ V2 c. Y# g
x=ceil(x0+48*cos(a));
. Y* z- n5 h# P* p$ \y=ceil(y0+48*sin(a)*B);
# o5 S+ n+ ~: A4 r* Q5 |1 ~line(x0,y0,x,y);
! c6 m& m5 ~/ ?% ]$ D" U} 7 X" ^* H& Q1 i
}
. ~* p: H- F2 N- h% j: U) Hrestorecrtmode(); 4 v- Z: t. s: N5 e) ]
} 7 L' e2 t5 `! H3 o
============================================================== - Y5 W( @  }* y* G( i1 W
【程序605 g9 k- i  f6 y2 v; E
题目:画图,综合例子。 : d; ^) W3 X- ~
1.程序分析:
1 @# D; q: o) p, q2.程序源代码:
. [+ m1 b; h1 u0 q" A#include "graphics.h" 3 A$ Y) h( _' O
#define LEFT 0 5 Y3 z8 B/ r; c; }2 E/ y, i' Q
#define TOP 0 ( F4 g# R# P0 w
#define RIGHT 639
! x7 f4 \0 N5 ]#define BOTTOM 479
3 |% _$ L, g0 X# [- v. o: F#define LINES 400 " p" _8 Y0 j. ^$ P. T
#define MAXCOLOR 15
5 _2 v7 F- J3 n2 Dmain()
" l$ O( c% ?+ H! B/ K{
/ s' s6 J1 |- y  qint driver,mode,error; / C: h" ^& z9 [! d
int x1,y1; 0 z% Q; Q: h# c
int x2,y2; # W9 K) M+ M: S' y2 F- p4 E
int dx1,dy1,dx2,dy2,i=1; ) j0 `' }: J7 H$ u2 T
int count=0;
- S" h9 X1 w) M% `0 t4 N6 A! Kint color=0;
  _9 p+ P$ u6 d$ c8 v% Gdriver=VGA; " z# r5 w1 J1 a7 z
mode=VGAHI;
' m2 _* ~! o4 `( N$ @6 G) Vinitgraph(&driver,&mode,"");
, ?% q* Q5 P7 k4 n' hx1=x2=y1=y2=10;
/ K' t. O; j2 e9 [dx1=dy1=2;
5 X* ?6 W2 [4 V* W6 s- i$ Kdx2=dy2=3; " x: I" z, G# A& r1 Z, ?) }
while(!kbhit())
. |! K# w' D( O3 E* M' P{
% W1 d( ]8 c# gline(x1,y1,x2,y2); ( d( g* C% v7 l
x1+=dx1;y1+=dy1; 5 }5 d2 `2 f4 \. L6 Q, o
x2+=dx2;y2+dy2; ) `9 k& n2 ]& L7 o, p$ G9 @
if(x1<=LEFT||x1>=RIGHT)
, |* D4 A$ H+ h6 s) [+ qdx1=-dx1;
5 A% g9 g' a6 O) W: `, Q# q7 M' dif(y1<=TOP||y1>=BOTTOM) ! V" l0 b# V4 H! ]1 ]$ L. n
dy1=-dy1;
, s4 h- u6 ~# Z5 P1 eif(x2<=LEFT||x2>=RIGHT)
( d5 J$ M- q% k8 A0 Bdx2=-dx2; 9 A, P9 N, W3 c+ b+ y. C
if(y2<=TOP||y2>=BOTTOM) " U- R  R; [3 I. B' H+ M
dy2=-dy2; / R+ b# |+ g. P$ {
if(++count>LINES)
+ ^- `5 d8 s* O* V: O7 E- A' F{ 4 ?1 o: @4 u5 _$ v9 i) @
setcolor(color);
$ ]" F* {* L: U- t2 \; L4 G2 O* ~color=(color>=MAXCOLOR)?0:++color;
  I7 `  O. |4 B}
1 K* D5 b$ \7 H- ?% i- V}
1 S+ \1 }- e- W; @' N+ x! Y5 T/ Iclosegraph(); $ b1 E$ G: I( Q/ k* h
}
【程序61
  ]  Z  A, ^8 O, Q9 D" ^题目:打印出杨辉三角形(要求打印出10行如下图)
* @4 G9 j/ N. x$ N- Y; n) i& O1.程序分析: + M4 g# u7 i9 _1 U, ^0 Q
1 ; \/ O  i8 u4 i3 U
1 1
9 e, A  Z0 g5 Y) T3 f0 e4 k/ Z- y1 2 1 + V) j( o$ O: R( o# G& R" H! Z# g
1 3 3 1 ( f) }  @* C7 N: S  ^# d5 S1 I7 D
1 4 6 4 1
9 u) k; `( t) U+ t$ `1 5 10 10 5 1
5 w* Z) e2 ^8 i6 t3 G" x3 a7 i7 b$ _2.程序源代码: ' \' {  [8 \; P' K" C2 U
main()
) |. v, B  T; |9 m5 W{int i,j;
* s$ S, R" p4 A& s) Kint a[10][10];
3 h) e) W. v$ S- D7 a- s% |- Xprintf("\n"); 8 X' I2 m) z- l% v" H: V& r$ K
for(i=0;i<10;i++)
3 F2 G* f6 ]- U" j& v8 `7 d{a[0]=1;
* T& @2 |8 X  D. N9 l- Ea=1;}
" F" @2 }+ G4 u( L" @+ F9 ~# Efor(i=2;i<10;i++) , E: @5 K2 n/ c& Z# O
for(j=1;j a[j]=a[i-1][j-1]+a[i-1][j]; ( R( @  s* x4 s7 R
for(i=0;i<10;i++)
: Y6 @. s( D3 s5 b2 D& B{for(j=0;j<=i;j++)
7 ?) H% Y; g' }8 c, Z3 }8 Yprintf("]",a[j]);
( g# T" D! p& ?1 |( _printf("\n");
, ?2 J. j3 `" }. Y} 3 X5 t. i  l, \5 h3 s& h  K9 t% }
}
. j' u3 K; M7 _4 G+ {==============================================================
* N4 V+ ^/ P( B, \+ u; x( Z【程序62
8 E; w  U: t4 A+ A0 B/ x题目:学习putpixel画点。 $ _1 o5 g' p1 M
1.程序分析: 8 k6 a6 E4 c; A$ J
2.程序源代码: 6 \" l3 x; }4 ~. N; o+ _
#include "stdio.h" ; f$ P1 _: Q# k" x. |
#include "graphics.h"
" k3 ]' h- G' n1 L  q6 `! dmain()
4 N$ Q5 _  ~; F' C{ & |' O( M) @# r7 K1 b
int i,j,driver=VGA,mode=VGAHI; / ?6 p  W2 i2 t
initgraph(&driver,&mode,""); . y& g+ c& K  |: f
setbkcolor(YELLOW); 4 N, s4 `- s5 k2 F! |0 z4 i
for(i=50;i<=230;i+=20) 2 \  _9 ^+ i' A& r9 N+ @% |: y
for(j=50;j<=230;j++)
9 a2 P5 s" p" A5 P, p% _putpixel(i,j,1);
; o5 c2 y/ U$ {4 l6 w! P. Bfor(j=50;j<=230;j+=20) ! ^& E, {0 e" \( n  N1 q4 w0 ]
for(i=50;i<=230;i++) " N* `: N0 A  S4 W% m) z
putpixel(i,j,1); ; L2 r8 W2 V7 U. ]8 }  O
}
; x7 r% d9 p# P, Q==============================================================
1 k4 B7 ~; Y4 t* F9 D9 m【程序63
4 P2 n. I5 |- X! n题目:画椭圆ellipse
# f5 T$ s) R2 r7 q: N1 r) K1.程序分析:
1 l5 L" D/ j! k% b/ n2 x$ \2.程序源代码: 1 v3 I/ O1 r4 [
#include "stdio.h" 7 x9 d8 [) @2 E: W$ z" E- L$ j; [) B
#include "graphics.h" , }7 T( F+ G" v' Q2 ~
#include "conio.h"
! Z! x9 z- }8 U+ E$ K! Y3 @. lmain() 9 v  N+ F1 m1 l4 d
{ ; {; a! V3 |( A: c7 {
int x=360,y=160,driver=VGA,mode=VGAHI; 0 F* I: w7 h4 T" n+ u
int num=20,i;
( x  t8 D+ V; y7 J% t+ Z; S/ Fint top,bottom; - C' ]' f5 y% x6 l" H2 u
initgraph(&driver,&mode,"");
* ^3 F( g$ |0 xtop=y-30; 4 |0 n4 d& D" U& _
bottom=y-30; 1 R5 [1 [! z* X9 K
for(i=0;i{
4 R! B- j& s" C) e% ~  M- R- Mellipse(250,250,0,360,top,bottom);
& i/ T2 U5 h) B1 J) Htop-=5; & r9 m. {- l" T- ?* m4 f
bottom+=5; 8 l8 G. J! K# l% b) Q
}
! N8 p7 E  B) C6 ?- ?7 m! o: Ngetch(); 3 [* R" [6 R9 k' c
}
  C9 Z1 K) y! f/ Q==============================================================
% [1 @$ ~2 d4 r& c/ g* \0 w/ U【程序648 _0 v# b& o+ W" z6 s
题目:利用ellipse and rectangle 画图。 6 ?" _/ l' v9 @
1.程序分析:
' D6 `4 W) k' K  v: {2.程序源代码:
( M( G# K# G, ]( V) y9 V#include "stdio.h"
: [/ {/ b* t3 ]" S#include "graphics.h" ' ~$ S% q' f- j$ w; A% c
#include "conio.h"
2 H2 W6 c/ L3 Lmain() % _3 C1 G% M5 x  w+ O: n+ B
{
% n7 k/ I% |% Y7 k* Qint driver=VGA,mode=VGAHI;
, r; Q6 a6 o- U: u* H6 `int i,num=15,top=50; 9 p8 F" H! [6 s: V* T$ M$ f
int left=20,right=50;
) v. E& ]. E, f' q' v  F% |initgraph(&driver,&mode,"");
% ]; U5 A( K# e& o3 Q9 Y% Kfor(i=0;i{ $ S+ N3 ]. B8 L( W6 g. e, c+ ]
ellipse(250,250,0,360,right,left);
& Z4 |3 Q9 c) k& h% cellipse(250,250,0,360,20,top);
  H7 {# b$ c' L+ b5 Crectangle(20-2*i,20-2*i,10*(i+2),10*(i+2));
6 F9 J/ z6 s7 n. Dright+=5; * f# a! C; u% n: ]7 g, ?
left+=5;
/ T' V& ^3 O  ~6 {$ w1 @; ~top+=10;
8 |5 ?- M" s- ~! T2 j! h  _}
. V8 w) }; @: |$ {getch(); 2 p$ z# o& V4 w6 M: C7 y/ {) T8 [
} . }; `/ g6 m$ c4 ~/ O
============================================================== * ]- [0 y! b: I, s5 t* V6 F- |
【程序65
$ N1 e( L: K& q2 D/ y题目:一个最优美的图案。
' j% e0 n$ N  l8 k; O1.程序分析: ! A+ r0 S/ `' [. ]5 o, h$ i
2.程序源代码:
- A- I7 {+ s5 ~& L: ~% @#include "graphics.h"
- R! z( o- s: B/ Y- [$ v4 u4 i#include "math.h" ; _+ B& _6 u) m& v9 k, m# Z
#include "dos.h"
, G/ }, |9 ^4 t4 T#include "conio.h" , T8 ]4 f# q1 R3 b
#include "stdlib.h" 5 \2 D2 i8 G" G& J! p; W0 G5 I8 J
#include "stdio.h" 0 i, V" L1 ]' o  W7 R: v
#include "stdarg.h"
- i6 r! _2 ^& R+ `; v! N' ^#define MAXPTS 15
) M, F+ I% |4 J# ~! G: A#define PI 3.1415926
3 Y" ^; ^: |1 X% mstruct PTS {
. P! f, d' }6 D0 W% Lint x,y; % U4 B/ P" i3 N/ x  e8 L$ m/ \
}; 5 n& t7 W! C8 d1 T
double AspectRatio=0.85; + _1 r( i, C3 ]  ]4 u
void LineToDemo(void) 2 f- O2 w! d5 D$ l/ j
{
4 w3 d( w) P1 i8 P/ S8 s2 L% pstruct viewporttype vp; # W7 E! e( \5 ^, s& Y. A2 y1 p
struct PTS points[MAXPTS]; . L2 P# D& i; R" {' h' d2 s
int i, j, h, w, xcenter, ycenter;
4 l* B; ?' }1 D- u' _0 @int radius, angle, step;
% n- T+ |) j/ ]5 K" jdouble rads;
3 K+ R5 n* T7 }, b7 B; i0 p% t+ Wprintf(" MoveTo / LineTo Demonstration" ); * e2 X$ h' i2 L
getviewsettings( &vp ); ' r) v" B! A9 l7 x
h = vp.bottom - vp.top; % _3 K  q0 U5 F+ P0 g1 S  o
w = vp.right - vp.left; 2 e; {  K7 J- F7 j6 k* X! y
xcenter = w / 2; /* Determine the center of circle */
* j8 K5 m* J) q0 Eycenter = h / 2; 4 n# m8 {3 M6 W+ C! \
radius = (h - 30) / (AspectRatio * 2);
- Z( q7 C: F, Qstep = 360 / MAXPTS; /* Determine # of increments */ 0 u: }+ q! F. P
angle = 0; /* Begin at zero degrees */
8 K" M; c% U  x5 Dfor( i=0 ; irads = (double)angle * PI / 180.0; /* Convert angle to radians */ 1 g$ q" g$ T# z% ]% D3 R. ^
points.x = xcenter + (int)( cos(rads) * radius );
: a7 h/ B7 x" W4 @. A3 u0 v" I5 apoints.y = ycenter - (int)( sin(rads) * radius * AspectRatio ); : i; \8 P7 C" q
angle += step; /* Move to next increment */
1 g  {9 x( u& y}
! J4 L$ |2 i/ K) C; Ocircle( xcenter, ycenter, radius ); /* Draw bounding circle */ / a% F8 [2 u" F7 B6 M# X  j* `
for( i=0 ; ifor( j=i ; jmoveto(points.x, points.y); /* Move to beginning of cord */
; k" r8 n' U- W$ j  dlineto(points[j].x, points[j].y); /* Draw the cord */ 0 x6 J( {- R* ~+ I4 e2 ?# d* r
} } } 6 l8 n8 D5 P# x8 N6 ~/ I1 {6 c
main() + m" R  H/ W+ x
{int driver,mode; 9 A7 r( C+ a4 Y* w
driver=CGA;mode=CGAC0; $ T# J0 Y- S3 \, V
initgraph(&driver,&mode,""); 0 T) P) u8 ~8 T: ]
setcolor(3); 9 z1 f: ^1 `! v3 Q6 [" j
setbkcolor(GREEN);
( G2 R8 K( B! F4 F8 A! vLineToDemo();} " k) G1 i4 m& G9 O# t
==============================================================
% B8 ?1 |' v* D  U【程序66# G, K$ A. |: C0 m0 S/ W/ Y9 }
题目:输入3个数a,b,c,按大小顺序输出。
) h# c" c9 \+ R& ^1.程序分析:利用指针方法。
- A+ Z( x1 L# p2.程序源代码: , e: P4 H: P; l, Q
/*pointer*/
) v: ^- l# ]3 Qmain()
/ m# f6 {5 ^5 Z- l4 j; M{
9 d  e$ M" p3 Zint n1,n2,n3; 3 {4 Q  t" ?& {0 T$ U
int *pointer1,*pointer2,*pointer3;
$ Q- S8 M; o: {# `printf("please input 3 number:n1,n2,n3:");
( |' C. m; V5 J$ q# S% t  ?scanf("%d,%d,%d",&n1,&n2,&n3);
* p7 n( G/ Y1 W& M0 E2 @pointer1=&n1; + o& H0 {) F0 N4 i- I" @% R9 A. L
pointer2=&n2; / c, P6 u; `+ K( \; J3 R) @: b
pointer3=&n3; 1 [! k2 T2 Q( _" `: C- B
if(n1>n2) swap(pointer1,pointer2); / w& j. ^% T, x1 a" F
if(n1>n3) swap(pointer1,pointer3); - y  O0 B! ?* N5 c3 d2 a) O
if(n2>n3) swap(pointer2,pointer3); 2 v1 O5 n* Y: T, E5 ~
printf("the sorted numbers are:%d,%d,%d\n",n1,n2,n3); : ^0 V" `) _" u0 F
} + x3 {" T6 i2 X8 w
swap(p1,p2) ) T* _  P. o# g2 s+ t) i
int *p1,*p2;
8 M, c" ~! \. m1 U6 _{int p;
8 X6 b1 u; m* `* O. Bp=*p1;*p1=*p2;*p2=p; / X6 S6 t. }) E
} / q8 I  _+ e1 Q+ _! S0 E( T
============================================================== 9 _/ R. Y+ W3 J( k- Q$ \% y  a
【程序67* |0 z8 [5 Q+ t9 l: c, n
题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 " t/ J1 G" l3 _  X
1.程序分析:谭浩强的书中答案有问题。 8 O5 _& H) v# W- x6 P6 H$ i
2.程序源代码:
; b+ O' V$ E7 F  h; k; L1 H; ^main()
3 H1 {  o9 o7 p8 X' k7 V{
3 B5 k5 ]2 P& o) xint number[10];
9 W- D# W; O$ y0 I; jinput(number);
2 f, j8 r0 T9 h& k0 Amax_min(number); + }! H# u- M( f6 s! n
output(number); ' a3 Y% X: N: r0 t
}
; v$ H0 ?3 b' Binput(number) $ ^4 z/ l" h4 |
int number[10];
' Z5 o( K& d/ Y8 h7 B. h+ C{int i;
2 E8 R' l; W3 b9 Mfor(i=0;i<9;i++) 5 p$ w6 `- x7 Y+ B
scanf("%d,",&number);
, {1 P  j/ Y7 P; i' k, _: `scanf("%d",&number[9]);
: z6 ^) P& @' Q( p; F}
$ `% u4 j& y* {/ {: Cmax_min(array)
! W8 d$ w1 p& Nint array[10];
" ]! C+ q9 A: f0 ]- u, c1 N{int *max,*min,k,l;
2 y: E7 W7 k! e$ D- Nint *p,*arr_end; . g; A( Q$ q" ]# H& [' x" Y* f
arr_end=array+10;
4 K1 n! u  R2 l+ ?9 ]max=min=array; , b4 P9 ~& b. _( D
for(p=array+1;p if(*p>*max) max=p; 4 }' r7 m% W5 T( o! Y
else if(*p<*min) min=p; % r4 D! S- n8 V% E- R# E/ \
k=*max; . U1 f! ?% m% @  z$ T' n: @
l=*min;
- ^5 {- `" s# ~# D/ W( V- h& ~" |- a*p=array[0];array[0]=l;l=*p; # y/ U9 C( H# g0 D# ^
*p=array[9];array[9]=k;k=*p; % v/ m0 S( m; b! [! G" O
return;
, g3 }! m$ l5 C7 g1 v}
. d0 y. Q( E5 {9 @output(array) 0 e" K: Q9 d# a5 l/ \
int array[10]; 3 a8 E4 m1 o2 O. {- N
{ int *p;
' u/ G9 Q# K: ?/ x. n! V* P9 Ufor(p=array;p printf("%d,",*p);
' W% G3 z1 i/ D8 f9 T$ Sprintf("%d\n",array[9]);
' Y- b6 |- C+ j$ i/ K/ Z}
% c$ Y8 f; e/ p$ R! A============================================================== & W% D6 k. Z. C/ x' M) I. i

6 r: S: o% y; a. i  j- S  `3 |

该用户从未签到

2#
发表于 2017-11-25 19:59 | 只看该作者
我开始考虑从google的影响了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-31 07:17 , Processed in 0.187500 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表