找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 61|回复: 1
打印 上一主题 下一主题

C语言经典算法50-67

[复制链接]

114

主题

136

帖子

1000

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

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

EDA365欢迎您!

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

x
【程序50
# M1 o/ o6 ^% d; W" r题目:#include 的应用练习 ; g+ n' ^6 B/ M* K- x( s$ [
1.程序分析:
  M' ?4 b1 B2 R* a+ ~6 z1 P2.程序源代码: - H0 \7 Q  g9 H9 D
test.h 文件如下: 9 K: X6 G- w' }& Z- s2 ~
#define LAG > " E. n8 |# O  M2 H: n1 Y: {
#define SMA <
- Y5 u9 d1 {4 G; P5 P5 q#define EQ == ; i0 k( ]1 P& Z8 U0 Z$ x  _
#include "test.h" /*一个新文件50.c,包含test.h*/ 7 x, s; d) D1 ?# ^/ a; W9 ]& ~
#include "stdio.h" $ n) k- s: G, K( e0 c% Q
void main() 5 `4 K6 H% ?6 \+ ~* ?# @, J! L
{ int i=10;
2 X! x! `) e% M' F0 W  gint j=20;
! Q* I% b' h8 Y& fif(i LAG j)
9 R. d& w7 ?3 p) P3 bprintf("\40: %d larger than %d \n",i,j); / ?/ ^% {5 z) D) L6 C, s2 S; D
else if(i EQ j) ' j) m7 q( B2 f) {
printf("\40: %d equal to %d \n",i,j);
7 ^  t6 N0 Y+ C4 _+ N9 qelse if(i SMA j)
; M: N: ^$ i/ ?4 ?8 kprintf("\40:%d smaller than %d \n",i,j);
$ O; v5 S9 ]( X- K5 P" qelse   J1 I, x5 ~( S) `4 N' R* n# ?9 k1 t
printf("\40: No such value.\n");
9 e2 l5 @! O  f9 [6 m}
. m# i3 Z2 I% B【程序51- v  U* Y$ C7 [" G$ _0 E
题目:学习使用按位与 & ) V; K" y- j# R
1.程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1
/ o- W- E3 }' g0 P2.程序源代码:
* B7 O  a* L& w0 ^6 N: O2 T#include "stdio.h" 5 k: B. |* L2 m) ?! j  P% a4 [7 O1 U
main()
; ?$ T: S$ y% g: ]% M; N{
) G0 A) y, A6 J! p9 zint a,b; . C& _4 N5 ~$ T& o
a=077; 1 L" i; x, ~+ Y+ S8 B$ \7 }8 o
b=a&3;
$ r( J. m) y! z0 pprintf("\40: The a & b(decimal) is %d \n",b); , t. f$ B5 \  K$ A4 C0 n8 T2 l; S
b&=7;
0 a% w6 s* y+ ?# m& n2 zprintf("\40: The a & b(decimal) is %d \n",b);
: a" t; k* w: Z2 {  ]4 Q} . A- |# a# M6 F, [2 s
==============================================================
1 _" z2 H7 K# s3 n1 V% O【程序52
* d0 t; M& C, q题目:学习使用按位或 |
. ]# f+ C6 [( ~0 H1.程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1 4 ~+ A  W7 e7 B) Y
2.程序源代码: 4 H% A5 k8 z* ]6 K$ [3 R; M: _
#include "stdio.h" ) l- H$ R8 P9 o4 ^3 ^) n
main()
; `8 Y$ e- e+ a9 \{ * T* ]+ \' }3 @8 W# ?+ m
int a,b;
* T3 ]. ]. [0 i" sa=077;
. O  u* ?9 U- Y+ F/ B1 J9 Rb=a|3;
1 u% N0 b# c- H4 n/ e8 D7 C$ E+ Jprintf("\40: The a & b(decimal) is %d \n",b); + X. U9 W" u3 U) V5 k, ]
b|=7;
$ H' N7 ?, |$ xprintf("\40: The a & b(decimal) is %d \n",b);
( g3 R9 Y- v* A}
" X. W# h: t; E) T==============================================================
6 s) [2 \/ R4 A* s; y0 e8 a3 }) q( R【程序53嵌入式信盈达企鹅要妖气呜呜吧久零纪要 " E- Z' v2 K4 E! A8 I6 E4 v
题目:学习使用按位异或 ^
# E  r9 {1 ~# `9 N# }( H1.程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0 5 g1 x$ V! J+ x; M1 `. c
2.程序源代码:
' o5 ~" |5 j7 J2 W8 n- }) A  ?2 ^! t0 p#include "stdio.h"
2 G/ Y& J  P6 q2 omain()
, I; P! n' a9 ^& Q% N{
0 K' x' K9 \% d2 Oint a,b;   @4 s) f+ J( d- l* c# U+ m- z% b0 w! h
a=077; 8 G  ~' @, i' @' z9 s
b=a^3; . C# C) U% o" L4 |1 i  n
printf("\40: The a & b(decimal) is %d \n",b);
) o* a$ _; E  U  f$ ob^=7;
- e5 J: @6 T) t1 z. z" u0 iprintf("\40: The a & b(decimal) is %d \n",b); + x2 x+ W" R* s) j
} ! V; I1 t7 c1 G
============================================================== 9 ?9 C$ ~% ^2 S1 z& k9 F) a
【程序54
: X- {# ~/ ], K9 ~2 H4 w题目:取一个整数a从右端开始的47位。
, z+ `6 g/ N( j! v, r程序分析:可以这样考虑:
. Z$ W8 Z$ F6 {% L! u5 M" E' w8 [(1)先使a右移4位。 " t2 O& B+ F0 h; l  o
(2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4) 1 d% I! X- \1 ~; n5 m
(3)将上面二者进行&运算。
" r: Z4 o: [8 f9 H2.程序源代码: ; g; c/ X& |$ h" {% ~
main()
4 Q0 E3 t  l( _4 e{ - `. g# p0 w+ F# {( q; E8 @: i$ u
unsigned a,b,c,d;
' }) P' d% u; q9 N- qscanf("%o",&a); : J+ t) }- T5 Z' n& Q) R" D/ _% Y
b=a>>4; ) ?/ y" m& D& C( r* {7 D: B8 D
c=~(~0<<4); 1 h% l' d  ?7 ^/ _
d=b&c;
- `9 Q. E. z2 x& h9 |" F* Hprintf("%o\n%o\n",a,d); ) l* w' G) w1 E
} ' }5 X# `" U/ b. Z; c( \+ b
==============================================================
6 U2 k! E, ?$ F- j0 z【程序55
/ Z: V/ q& U% C3 d+ a/ G$ m3 l+ p! S题目:学习使用按位取反~
- K/ S& A9 H, Z! O6 m% \8 k& k5 b1.程序分析:~0=1; ~1=0;
9 M$ n3 C; o' s0 @2.程序源代码: $ V2 t# Y6 T3 h$ v! [' U) O7 b' T& j7 V, B
#include "stdio.h" " s. r+ m3 _: J7 p  q9 u( n
main()
6 E9 @. C$ y4 A3 }/ P6 U$ D{ ! M& f7 O$ G3 i2 G
int a,b;
. c* f5 W0 H9 Y9 r7 j$ I& Xa=234; - s7 m$ V3 u5 @0 s+ y
b=~a; & X9 W. v" m" N# t3 Z0 Q5 G
printf("\40: The a's 1 complement(decimal) is %d \n",b);
3 ?2 u2 l4 c0 C" J, Ta=~a; * R& C, H* j8 ~" h5 G
printf("\40: The a's 1 complement(hexidecimal) is %x \n",a); & X4 S' Z3 b% o0 l; P5 g
}
1 ~" w' u# c/ |7 T" p" ~==============================================================
7 h* ~) ^& B1 Q【程序56
2 w+ N* j; o* l题目:画图,学用circle画圆形。
$ r9 T* J6 D; G. u' _1.程序分析:
. c3 X3 s# C! ^! h" r" a3 L9 W0 ^2.程序源代码: * y: t. ?0 s3 G4 O2 a* w( D% g
/*circle*/
% ~* b1 Q$ s! g7 `& t) d1 F  @#include "graphics.h" 7 j3 l7 }  A5 H# N& A$ h
main()
3 S- N, `4 R3 f6 `+ ~! ]{int driver,mode,i;
% [  C$ |7 t: d& |float j=1,k=1;
2 z* V. x' s3 j. e6 Gdriver=VGA;mode=VGAHI;
  C4 g, Y: J8 E# z7 T8 Minitgraph(&driver,&mode,"");
5 S, P: g$ |$ l' p8 K# s. asetbkcolor(YELLOW); 0 h( ]0 O; \% n7 `7 g+ w9 L
for(i=0;i<=25;i++) 0 ?. O4 O: E* y% B  \. {
{
& S4 O. C2 e' k9 V5 c# }setcolor(8);
; h% [& U& n) H. Q- \circle(310,250,k);
1 }+ Q; C0 \# V8 G4 m/ x+ [k=k+j;
* {* G4 ^, j+ jj=j+0.3;
4 {2 B* R$ c1 [9 b2 h} : Q  _. L1 m  c( r; v
} ! h6 ]5 U# K" d8 L9 P" f2 b* f
============================================================== ; R4 p1 l7 P2 _/ E' S% S
【程序570 A* K; I0 {) h  N
题目:画图,学用line画直线。
, Z5 {5 l3 ~2 S) v! Q1.程序分析:
( T& O- X2 H1 ]; j" d2.程序源代码: , s6 v4 K( X4 w9 A9 u" D( X
#include "graphics.h"
# Z; Y" t6 T9 V9 a: `# v* cmain() ! {' o; D$ A6 d2 a
{int driver,mode,i; ; f# f6 n- r7 v3 ]; `1 g* S
float x0,y0,y1,x1;
& o* n" [' P* N) ~8 L' Dfloat j=12,k; ( A, a5 ]1 M0 ~) y9 k" J
driver=VGA;mode=VGAHI;
  {. `' ]  p  x- ^) K/ Hinitgraph(&driver,&mode,""); , U5 ]8 _7 x5 i; o. O( b& q5 x
setbkcolor(GREEN);
3 _: U# M2 I2 Z0 Ax0=263;y0=263;y1=275;x1=275; % Q& U- i& G( B( K
for(i=0;i<=18;i++)
6 w4 }+ _1 m' g. E6 e2 N{ ( `- o  _5 V) b6 o' T; Q
setcolor(5); ' u0 _% e7 @; g5 g# V
line(x0,y0,x0,y1); & Q) G/ f- L4 ^9 z& Q0 l
x0=x0-5;
4 G# e* Q0 f& _3 z6 ry0=y0-5; 6 w! Z  x7 `. j8 A# |# z+ b3 f6 d) K! r% E
x1=x1+5; : f) A# c6 @0 o" I/ Z- G8 }
y1=y1+5; , e) v& n: |# [! m
j=j+10;
! f: A" e0 R8 \# L}
$ Z7 M, v- Y- z5 Yx0=263;y1=275;y0=263; : S& ~9 g  X1 y3 [' D1 G2 Y
for(i=0;i<=20;i++)
2 ]% F6 a: ?) O. F. |3 B+ @4 g{   m) d. D- M5 M$ d' L0 `+ }( _3 x- e! Z0 x
setcolor(5);
* B- @/ c$ b4 C3 x& `4 F9 a/ R, Bline(x0,y0,x0,y1);
6 O6 k; [, ~! {. g1 gx0=x0+5; ; B1 l# j2 P# a8 L
y0=y0+5; 3 q1 \' I5 y! z, S
y1=y1-5; & x6 R4 j& B& b( ~
}
: w) f% s4 d) O0 Q5 G1 r% X}
: w- g* F! A& [+ o2 Y, b==============================================================
! [9 a* M: P/ ~4 U+ }2 m【程序58% q* i7 a% ^7 f( y# D1 R. u8 T
题目:画图,学用rectangle画方形。 ; \8 c" r. z, e. d7 v$ ^
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
2 e3 G0 b2 d( T1 O) E  D& m2.程序源代码:
" o+ q! }4 p" L) |2 Z* @4 e#include "graphics.h"
9 m3 r" D  f( n6 a2 M8 ~main() $ J4 t4 u2 H9 m% H! A* C
{int x0,y0,y1,x1,driver,mode,i;
; U0 ^4 {+ o8 kdriver=VGA;mode=VGAHI; % c3 ~4 Z0 @& R( E: x* z3 j
initgraph(&driver,&mode,"");
: V$ V* {0 y! N9 Ksetbkcolor(YELLOW);
7 u6 J, A' ~, R9 n8 `x0=263;y0=263;y1=275;x1=275;
( W- r) u; D  s1 Efor(i=0;i<=18;i++) ) h6 ~% C# `( M
{   `2 B2 \0 o/ u" c
setcolor(1);
5 C' s. p5 r; O$ w6 Arectangle(x0,y0,x1,y1); 5 ^+ |7 y: `; X: p( H* C+ D! |
x0=x0-5; 9 a+ r9 w( K- X: i
y0=y0-5;
5 j  \7 K2 o3 Ux1=x1+5; : C: Z. K( S% w% @9 [9 F( }9 r
y1=y1+5; 1 F3 X+ g& \5 e) {8 V: P
} ) T. c( \# s6 B% l
settextstyle(DEFAULT_FONT,HORIZ_DIR,2);
1 }. O  ?- H3 r# oouttextxy(150,40,"How beautiful it is!");
# K. a: f' F+ K- \1 eline(130,60,480,60); , ]  g7 x* z; X
setcolor(2); 5 z% g9 i  A; R  @& s* ]# N2 f
circle(269,269,137); 8 S! [) ?3 s) o1 r
} # S( v2 B4 S2 z; p& E1 u
==============================================================   b3 w  `8 s# i( Z' O7 U
【程序59; t2 N% L) K8 h% g+ h8 e: _
题目:画图,综合例子。
% S' G4 O7 S* M3 `, R. q1.程序分析:
- d2 j% N6 ^) Z$ B2.程序源代码: . a+ J/ b$ Q+ c, J0 J
# define PAI 3.1415926
  u8 {: E5 D# G# define B 0.809
) f3 m5 C  p( d0 b! c# include "graphics.h" ; B" b4 P$ S/ @) _: E4 ]
#include "math.h" + d! c+ _+ y0 X4 y8 A
main()
6 c/ T5 l" j$ }- b; R' c$ [{ - v$ _& [4 W6 b
int i,j,k,x0,y0,x,y,driver,mode; ' k. ^$ t: Q  R9 ^1 y+ L5 J9 C
float a; . T! a' L: K0 ]" W# M0 e
driver=CGA;mode=CGAC0; 0 h* P: N4 u& Q! e  O. c
initgraph(&driver,&mode,""); 7 |7 m* s# X& @+ P, ?
setcolor(3); 1 x: [. O6 X: U0 Y# `) O
setbkcolor(GREEN); 3 d+ m3 {! _# ~; q
x0=150;y0=100;
5 X; _: s3 \0 Pcircle(x0,y0,10); & \4 w( }- d9 N
circle(x0,y0,20); $ ~( {, P" K$ V' n* K
circle(x0,y0,50); 0 t* f" h/ Y' ^6 Q* `0 ]6 H
for(i=0;i<16;i++) 5 F1 i. r+ s+ s% }
{ ! [! g% V8 {) o9 J+ J/ D
a=(2*PAI/16)*i;
5 t$ W3 P& H; A5 s; I1 x) |" j) Yx=ceil(x0+48*cos(a)); 5 x8 j- S) X- x" }8 |
y=ceil(y0+48*sin(a)*B);
: L9 M' q; y* ]. L& u9 {% o1 Zsetcolor(2); line(x0,y0,x,y);}
. ^: ]: J" \& o8 H7 Bsetcolor(3);circle(x0,y0,60);
) A8 Y8 O& T; T3 O/* Make 0 time normal size letters */ ; S% z  E) Z; W0 T/ M3 f0 H
settextstyle(DEFAULT_FONT,HORIZ_DIR,0); / Q0 \! W# h# s
outtextxy(10,170,"press a key");   B$ j" @$ L) [# Q! }, z6 P6 a
getch();
) `, g4 P% |$ u% Msetfillstyle(HATCH_FILL,YELLOW);
  k# U1 r. R" N& Nfloodfill(202,100,WHITE);
. w  z4 R' W5 ?; J3 v$ Hgetch(); ; V3 |  o3 e9 p- {8 L2 t; ^
for(k=0;k<=500;k++)
9 ~( h* M+ i2 o( ~/ S' n{ 0 S% ~( I/ w0 M, H
setcolor(3); 1 T0 P* h2 y! W8 d- H
for(i=0;i<=16;i++)
6 E' F. o) k8 }2 P$ X) I! y{
6 {% f4 Y  G5 }, [- Na=(2*PAI/16)*i+(2*PAI/180)*k; . C# F8 l/ R8 s) q8 b" R! |
x=ceil(x0+48*cos(a));
8 z4 ?; s" P* E# O. o% Q4 _y=ceil(y0+48+sin(a)*B);
9 q2 H: u8 U! Y4 W* t; F$ }& E$ ?setcolor(2); line(x0,y0,x,y);
2 o) e; d. l! j* R} 5 m7 e- D) l2 z, r$ B3 g7 T% t
for(j=1;j<=50;j++) ) J3 ]# e, I6 a
{
* I0 H& m- ~$ O2 s  `2 ga=(2*PAI/16)*i+(2*PAI/180)*k-1; 1 s& d" Q: X! e6 ^# g0 |. Q* q
x=ceil(x0+48*cos(a)); ( h* J3 _+ d' ^" }& a: x4 F* }
y=ceil(y0+48*sin(a)*B);
' s1 s! C( Y3 p; w$ ~0 Tline(x0,y0,x,y); 1 v: ~- {6 v+ r% D8 z7 Q! b) I
} 3 _' v$ P) L" ^, c( u3 a
}
7 F& F0 r: f$ g9 `' ^; N! ^3 Srestorecrtmode(); / h8 ^( D( p4 ?! }
}
9 I! g0 V' ~! k% u2 j* M==============================================================
2 S& j, p) P+ ?* K0 S【程序60: F9 K: X8 q; [# b2 _- {# m: P1 Y
题目:画图,综合例子。 1 ]3 b0 ]; N, p0 R6 {: R7 f$ D* |# B1 ]" m
1.程序分析:
( M' t6 [2 y! {8 r; g4 p' t1 B2.程序源代码:
( p/ y4 A( M4 a6 l+ \#include "graphics.h" . n* d0 E  z& v# U" |. s+ P
#define LEFT 0 , k! [; c' W0 Z3 ~. \
#define TOP 0
; V; I: s/ Q4 x#define RIGHT 639
2 f* ^7 S$ T3 B+ y5 ^& U6 Z#define BOTTOM 479 5 ]) b: [9 y  d4 r. u6 Z8 J0 x+ _
#define LINES 400
- w$ O& F' }3 M7 c9 P' A0 c* p#define MAXCOLOR 15 ' h; [; N6 T. _$ i0 I& N' P& j
main() 1 D7 n' d7 ~" ]4 R% L  n
{ 2 q9 D) {% b1 E6 I
int driver,mode,error; 0 s9 [9 R4 Q. L. `( \! }' `
int x1,y1; + {9 T# r& C2 V# |/ v
int x2,y2;
7 l# ?2 {+ U% ?  s3 ]+ Mint dx1,dy1,dx2,dy2,i=1; $ s, U, M! v+ ]% e# |
int count=0; . P4 [9 [3 W# _5 o, X) l8 S% F
int color=0; / s! I! r( `" K5 J: u
driver=VGA; : J' R8 i2 m& D# r! d
mode=VGAHI;
& X* Y" J" r' @( Tinitgraph(&driver,&mode,"");
2 k( g& W" w5 h, _2 N8 H! Bx1=x2=y1=y2=10;
7 L: _2 E/ e. v' tdx1=dy1=2;
; `$ O% _6 Z  sdx2=dy2=3; * c$ N' I) M3 u' g# P* D* f
while(!kbhit()) ) ^, O- R% B; J. x; A2 v
{
- w! _! R, {( p7 Q3 c% H( d" tline(x1,y1,x2,y2); - u! D; c/ @" P0 Y6 {; Q0 }
x1+=dx1;y1+=dy1;
8 I7 ]( `5 }0 `% Wx2+=dx2;y2+dy2; 7 M' w4 G+ z1 R  h
if(x1<=LEFT||x1>=RIGHT)
" x6 z7 g4 w" `4 W1 Mdx1=-dx1; : N  S9 Z; x( S0 ~7 b
if(y1<=TOP||y1>=BOTTOM) ; `( A7 S! b. S+ F, x
dy1=-dy1; 1 d! Q7 H$ A) d* t4 {
if(x2<=LEFT||x2>=RIGHT) : L5 d7 [( X% M5 r
dx2=-dx2;
+ H- P# J5 v, N8 lif(y2<=TOP||y2>=BOTTOM)
- @, ~* S* ?9 L/ r; D. [& udy2=-dy2;   V+ B  v- H7 O: j1 V) v7 t
if(++count>LINES) ! Z8 S  q$ J) _5 S! u
{
3 V/ w8 @3 l0 S7 K( Zsetcolor(color);
9 G7 o6 M' [: n0 O$ @* n1 V( B; J+ `color=(color>=MAXCOLOR)?0:++color; ' J# R/ f1 v$ |9 L) v; _4 ~
} - Y3 |6 F% K+ k, |7 h9 K7 k
} % g! o7 j0 u4 K  ~1 a
closegraph();
: p6 z: w4 c' z0 M}
【程序61" F3 d; v& d4 ^9 ?  x
题目:打印出杨辉三角形(要求打印出10行如下图) 7 L( d  J# t* i  H3 i  f0 i: C3 h
1.程序分析: ! s9 J" C1 p1 x8 g
1
+ M: k5 D' _* D% d7 @1 1 " V: T9 C0 V; I8 s+ W, E7 \  v
1 2 1   C' `7 P  p/ F$ W) I% I
1 3 3 1 * ?! q( y! ^. v9 [, l  M2 Q) J' j2 ]
1 4 6 4 1 ; t5 w9 I' Q, v. [0 p: F
1 5 10 10 5 1 7 G7 o7 K. x9 b8 M  M" A3 T
2.程序源代码:
* y) ]4 e. m/ Z3 V5 }main()
# y5 k0 ~8 e! M1 }{int i,j;
1 K, u! O% v, q6 U2 lint a[10][10];
8 s" w/ \; A3 B+ A& lprintf("\n"); 7 {- m9 Y% p- i9 X
for(i=0;i<10;i++) ) U+ I' {1 V8 t5 e' F) F
{a[0]=1;
8 p/ o5 {, y9 m; ?; P  T6 A5 Oa=1;}
6 y3 @6 A% _; [  mfor(i=2;i<10;i++) ( ^8 r) G4 Z$ z) Z! i* R4 ~
for(j=1;j a[j]=a[i-1][j-1]+a[i-1][j];
' w; i$ [0 m% @$ |. d0 ~: Vfor(i=0;i<10;i++)
+ }/ |$ g$ @1 Y; e7 b5 j{for(j=0;j<=i;j++) 4 C- C/ D9 a% V0 v* E! U) U
printf("]",a[j]);
" s* f7 i& `$ X" I- G2 eprintf("\n");
& k* O+ r3 d; [! g6 O% }" ^} # O$ J+ @. i+ K) S
} % I- X: m7 Q. l% i
==============================================================
& T" ~! J+ f$ ~【程序623 O" b( `% ^# R5 |) z3 b: d0 W
题目:学习putpixel画点。
/ i- U, M% d! x0 t* r1.程序分析: ) Q6 T. A1 W- [! U3 a, C; q5 Z9 }
2.程序源代码:
2 ^0 Z5 V0 R2 W' O- F#include "stdio.h"
# O% T% C4 y- S6 f5 S5 d6 l#include "graphics.h" 3 l  F5 [, o, d! M8 u; [0 V9 A
main()
, s6 q" C9 h+ ^{
2 i8 i7 Y+ K6 v+ R7 n; N4 Qint i,j,driver=VGA,mode=VGAHI; ' X# l$ H3 {) G" v. L* g
initgraph(&driver,&mode,"");
( A# b# }8 Y, W% X; j1 D5 E' I/ w9 h9 `setbkcolor(YELLOW); " H" e/ Y. Y/ f2 B
for(i=50;i<=230;i+=20) ( D# q- {# U1 M- T- y+ Y
for(j=50;j<=230;j++)
7 a6 K1 z+ l* }9 V- g3 V! Eputpixel(i,j,1);
* s( n8 \$ l8 A/ Y( {for(j=50;j<=230;j+=20)
, @& U% H+ N1 s. v9 zfor(i=50;i<=230;i++)
4 C3 O) N5 i; Aputpixel(i,j,1); # E( t4 S! Z, _
} ) ]2 `9 g" x" X( j: A0 r. G8 p( a4 ?& I9 T
==============================================================
7 v3 o8 B5 J5 j8 j3 F4 Y/ e【程序63. \  T! k1 Q; f  {$ I$ d  m3 i
题目:画椭圆ellipse
0 }/ ?% X% _, }% l  O1.程序分析: 9 O( E: O, _; }2 ]$ z$ \$ |
2.程序源代码:
9 h2 W6 ?6 X, W0 T+ [#include "stdio.h"
& H& a* t  ^6 z#include "graphics.h"
( {/ ?+ n; p5 v0 }0 g2 Q; i#include "conio.h"
8 i( d1 W7 M8 M! K$ qmain() # c1 Z$ v: B( S0 {$ V$ d4 U* Z
{ ' H8 R: w: f7 r  u6 {
int x=360,y=160,driver=VGA,mode=VGAHI; * o7 W( b$ t1 Q% Q8 U! w. |
int num=20,i; % L% d5 w, }9 P" D
int top,bottom;
. [3 v  n0 f! s* J2 `6 ~  minitgraph(&driver,&mode,""); / }  V7 l% ~( l$ P; }
top=y-30;
3 f3 U; T! t: K8 m+ n  dbottom=y-30; ' u  q% u8 _0 d! }' L
for(i=0;i{
) J4 [  i0 E+ p' Z! hellipse(250,250,0,360,top,bottom);
' F" }. A9 v& |% K# y' ctop-=5;
+ @. q% Q. g$ J7 y& Z! Y" W/ C; [bottom+=5; ( H& W! \2 d6 W4 O( m: I5 h. ~
} ' L( B$ Q6 j6 [$ o4 |: O6 A
getch();
5 f- y0 Z2 z" F$ v6 o6 t} 4 Q: w9 g- b+ i) m4 e( W; G
==============================================================
# W( v: z3 s, @, q( ?【程序64
5 ?# h1 J3 c  A$ R; e/ C题目:利用ellipse and rectangle 画图。 ! p& V# L8 A: j/ d
1.程序分析:
5 f) T6 K* Q: V! U2.程序源代码:
+ v* ^: R& _1 E  P1 f# O; h#include "stdio.h" ) z$ r7 x$ V' v( ?8 X2 I4 Z9 d9 E, R
#include "graphics.h"
% @8 `- H" n2 b0 T1 _5 A7 w#include "conio.h"
0 I$ k- c  G: B# pmain()
6 t3 Z8 k8 n0 ?( B# e7 f; X{
2 R+ @$ C. l7 c* \- nint driver=VGA,mode=VGAHI;
! P! y+ z' ]" n1 A0 V% m0 }int i,num=15,top=50;
* w, b! p& B  f: T* G. Kint left=20,right=50;
1 j9 ]2 ~: b8 t$ t7 P% ^+ f8 z9 Sinitgraph(&driver,&mode,""); . m6 ~% U& u% d5 O( r% D5 [* [
for(i=0;i{
8 Y3 A$ @  U8 k9 ~: {) W  t0 Sellipse(250,250,0,360,right,left);
$ W2 u0 P# j, w, A  T! g/ |! kellipse(250,250,0,360,20,top);
2 w) g: J' Y( c( t% l2 Arectangle(20-2*i,20-2*i,10*(i+2),10*(i+2)); . e' ?- c  s! _; t6 ~. K  R
right+=5;
* `2 T! h: c9 x' W+ c* Fleft+=5; ' D+ V. ]( G8 _! V1 z$ H8 K
top+=10; ; v; G. g/ G* d# u8 {, Z, ]
}
: g; m4 _% U, D2 bgetch(); 5 u0 A. b, F: V$ d
}
. [5 Y  p; d% X. @0 V# R, I: b============================================================== ; g9 _- R0 y1 z& ~' g2 Z
【程序65
: r+ H" Z# J' E$ Z3 X' ?题目:一个最优美的图案。 # c& m; }# [% k) z6 x8 u; K
1.程序分析: 6 k* s$ n2 R1 g6 Q8 I
2.程序源代码:
1 t; N) |4 W: Y9 J! y3 _+ y' z#include "graphics.h"
# N; u8 g$ p% P#include "math.h"
' k( L. m: r$ V9 P#include "dos.h"
2 |0 j9 A( R( p, S' k1 a#include "conio.h"
* y& x1 T$ C, e; M8 S9 ~#include "stdlib.h" 9 t: [1 Y, {. k) k( F  O
#include "stdio.h" * c4 |! ?6 ~8 s  |4 H
#include "stdarg.h" 5 R# l6 S- W6 R1 J# m+ z2 Z
#define MAXPTS 15 / ]8 H# j+ o6 I6 {6 {7 C
#define PI 3.1415926 9 }& J/ x9 D( U. J8 _# i
struct PTS { & B5 x* s3 U) f  S1 o" \9 c
int x,y; # `3 {, Y' e' l% X) T/ g
};
  e/ e& P- ]2 L- u- Y' O) Hdouble AspectRatio=0.85; , ~1 T, }' s" K! W7 L& }% O
void LineToDemo(void) + l, ~9 D/ @+ k% H. B
{
( ^2 E( N. j* T* n2 y% O/ D3 E4 Bstruct viewporttype vp;
7 f, P9 Z7 E/ A$ tstruct PTS points[MAXPTS]; # o4 A% u" b. W3 e+ B* \
int i, j, h, w, xcenter, ycenter;
! j2 a3 s2 H" U7 L7 @int radius, angle, step; / K3 v0 i$ P7 N2 n  g
double rads;
/ j- o# X" Y3 U, L% J* T; yprintf(" MoveTo / LineTo Demonstration" ); 9 O# j. l! e( I) V5 p* P( I
getviewsettings( &vp );
, u* {! X* Y8 kh = vp.bottom - vp.top; 5 Q5 o/ B  S/ U+ u
w = vp.right - vp.left; : i& S' P) I$ k- j
xcenter = w / 2; /* Determine the center of circle */ . @6 |# Q2 |( N- D' x  J
ycenter = h / 2;
2 Y! Q7 G% B' E& h  @8 ~radius = (h - 30) / (AspectRatio * 2); " x1 ~5 h# L4 y3 U1 V/ `; o5 N
step = 360 / MAXPTS; /* Determine # of increments */
5 y) _9 E$ C! I# y' xangle = 0; /* Begin at zero degrees */
( I0 p. U. O: E+ jfor( i=0 ; irads = (double)angle * PI / 180.0; /* Convert angle to radians */ , n* `9 Y! H8 M  l
points.x = xcenter + (int)( cos(rads) * radius );
+ u# R* I  q' P: d4 hpoints.y = ycenter - (int)( sin(rads) * radius * AspectRatio ); $ x7 R& P( _9 e: f
angle += step; /* Move to next increment */
0 r! ~, d2 P+ w- C- H}
7 q+ h$ r  n" L7 R& Y+ g$ ]+ N4 xcircle( xcenter, ycenter, radius ); /* Draw bounding circle */
8 ~; B1 x; P+ r9 u8 ufor( i=0 ; ifor( j=i ; jmoveto(points.x, points.y); /* Move to beginning of cord */ 9 ^8 M- a+ K" ]) A4 F5 z" q
lineto(points[j].x, points[j].y); /* Draw the cord */
$ f) D/ U8 B  V6 C+ Q& N' S, M} } }
4 R3 W" I" ?/ B$ Amain() ' n' L6 x: ~* c/ I: Y9 j1 F( L% B
{int driver,mode; ' I2 N6 t' s* ^3 I# X$ ]2 a
driver=CGA;mode=CGAC0; ; Y' l3 S' f$ O  m( p8 |( }3 b8 m2 H
initgraph(&driver,&mode,""); * W$ b' y+ x$ n1 a% u& N
setcolor(3);
( N4 z0 ~9 x/ k) q, P5 A" }setbkcolor(GREEN);
9 O# c2 y' L. F# }% YLineToDemo();}
1 _8 w* y4 s, ~8 H==============================================================
. @! _* q& u7 k9 q9 w1 \【程序665 J1 ^) J5 u0 m0 b8 A
题目:输入3个数a,b,c,按大小顺序输出。
0 t" k$ E( Q7 j! k1.程序分析:利用指针方法。 ; Q& T$ ^% y& h" L
2.程序源代码:
1 H2 w9 w2 Z" g& k. F/*pointer*/ ! @! w5 b9 a0 q) K- {$ c8 J3 p
main() & r/ l2 L; b- {: a
{ ' V" _( [9 Z( l1 x( e; V
int n1,n2,n3; / R0 y- W! |) }3 j! p
int *pointer1,*pointer2,*pointer3; 2 H  Z$ S% E& ~1 k/ f
printf("please input 3 number:n1,n2,n3:"); . }5 e' Q9 {# I# |2 P2 S2 x
scanf("%d,%d,%d",&n1,&n2,&n3);
0 U7 i" T9 L4 F0 Vpointer1=&n1;
$ i) K/ T, ~8 |- Npointer2=&n2;
0 J2 r' s7 f9 \& ]8 |  D2 p6 vpointer3=&n3;
: q$ w; Y9 I( ]7 w  t+ C8 R! @. oif(n1>n2) swap(pointer1,pointer2); 1 F1 E! r) j6 C
if(n1>n3) swap(pointer1,pointer3); / y* u4 @" p! A# O; p9 Y( B. N3 m
if(n2>n3) swap(pointer2,pointer3); 8 x- {9 J8 h& ~. w& j* ^
printf("the sorted numbers are:%d,%d,%d\n",n1,n2,n3);
/ x. {0 e5 l- ?- M) ^1 }7 M0 V' Q}   Q" g/ I! S, L9 K- e: v( A
swap(p1,p2) / H3 X0 e2 Y# t5 J8 W' z- M
int *p1,*p2; 5 f2 x3 m6 n. E  F
{int p;
" W# @5 |+ l% E5 Tp=*p1;*p1=*p2;*p2=p;
9 t. C# Q& M; M; Q2 Z}
6 x0 v/ C. v  S, d- u==============================================================
0 C& n. F% H% H" i8 \【程序67
6 N- X, b, X) l2 r题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 4 _% U( K8 Z; m, r
1.程序分析:谭浩强的书中答案有问题。 " K9 {0 R% R- e* m  ^, c2 ~
2.程序源代码: ( l7 }1 F% w& n: @! t
main() ) q& H5 r" u9 C6 T- b
{ 4 V- `' \" Z  ]8 {
int number[10];
" k4 W2 |" j* E5 V& [input(number);
/ y; v1 K' `. S+ b7 O7 {6 ~max_min(number);
* u3 A% |2 _4 _) Q3 s" n; t: Foutput(number); ( X+ ]' B- p2 ^* [7 T5 \5 _+ \
} 4 ^% u# m1 z. e8 e- h& h3 @/ @
input(number)
" F3 L9 n, l: C* K! ~5 rint number[10]; # }$ b4 ?, W) G- e% [5 y' H
{int i;
' }% y' f4 ~" U6 m2 j3 W, R' `6 zfor(i=0;i<9;i++) % P7 R0 P' Q2 ^4 c) K
scanf("%d,",&number); ! T, e6 T2 `: I  Q  N+ F( K5 C& h
scanf("%d",&number[9]);
( A& S- }% A4 |4 Y& ^} " o/ c! ?6 O: {0 t% L: h
max_min(array) ' h/ ?: T0 b% @( u
int array[10]; 7 y3 b. A2 d' o! u# V3 _9 e
{int *max,*min,k,l;
8 H/ I3 k' g& z9 r( @" m7 Sint *p,*arr_end; . a* t. o7 u0 `
arr_end=array+10; ! Q) D. D' M/ _( O' ]9 _1 j
max=min=array; : T3 T( Z; ]. V. A6 s) q! h8 P2 S
for(p=array+1;p if(*p>*max) max=p;
1 v" H: y" E4 K5 x! velse if(*p<*min) min=p;
- n/ u  @+ }8 Zk=*max;
* U* q8 T+ f3 d4 M( tl=*min; # u/ X3 H2 }# b+ ]5 [6 t' F2 L' d
*p=array[0];array[0]=l;l=*p; " ~; i* i& K' w- T. q% C5 M& H
*p=array[9];array[9]=k;k=*p; * a" d+ a% M; W5 X
return;
9 N0 O. Z. z3 C5 r; u; f}
1 n$ Y, \' W1 h- d  J7 m9 {output(array)
& w( S" D7 l  {. c; W) y# z+ @int array[10];
8 K% ]3 B/ Z& K- G2 W' j{ int *p;
# w$ t" t' I9 g0 u( bfor(p=array;p printf("%d,",*p);
* [8 O( u6 S: m$ v  dprintf("%d\n",array[9]);
  H; w3 C5 ]- Y2 g  n/ R+ {} % Q: \% s9 X- W; ?- j0 t
==============================================================   f: `/ {3 n! k
' H- d/ F- |7 o0 i8 R) j, U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

0

主题

82

帖子

93

积分

二级会员(20)

Rank: 2Rank: 2

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

本版积分规则

关闭

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

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2025-2-2 15:07 , Processed in 0.062313 second(s), 31 queries , Gzip On.

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

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

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