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

C语言经典算法50-67

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
【程序50
3 k2 `8 T- y' M9 D/ G题目:#include 的应用练习
. L& L/ G: T+ G8 P2 O1.程序分析: 6 z' O& e9 g; {: x4 b& Q6 D+ v  G! c
2.程序源代码: : W6 P3 U5 A2 w# B7 V( L% X, g
test.h 文件如下:
# v% G) B. n7 ?0 N  m, i1 m" h4 e#define LAG >
0 Y# b  n. [6 ^; n' L7 ]  N7 o# O#define SMA < 3 ?( V% Y( G$ L& v7 t
#define EQ ==
3 U+ t0 n) O# b/ r+ w; t. U" t#include "test.h" /*一个新文件50.c,包含test.h*/ 6 J7 e, V6 t  y5 }
#include "stdio.h"
! x- U, T* S/ M0 f% M3 ivoid main() ; t" Z! }+ [# P3 |) C
{ int i=10;
0 F* f/ U" R. f! b9 Iint j=20; ; a- q6 ~0 x6 Z* e
if(i LAG j)
& O2 u5 t9 f; L& ~" Iprintf("\40: %d larger than %d \n",i,j); + A; @! R* M( g; d! k7 z
else if(i EQ j)
! {1 Q2 e; O- j8 }2 \& Nprintf("\40: %d equal to %d \n",i,j);
; ?4 K; L& B; |# K; n6 j3 ]3 m. ?else if(i SMA j)
4 ]+ R4 Y! y3 X" N2 [% ^printf("\40:%d smaller than %d \n",i,j); - d! [7 Q, g2 _9 w: b% |/ D
else
2 l, A; E; S. W' o( v+ xprintf("\40: No such value.\n");
1 m/ B- r9 t( g7 k, n; i}
' ^9 I8 \- s1 X3 ]! R" t# }【程序51
2 Y. {5 @+ A& @9 W& F/ B# N题目:学习使用按位与 &
$ O4 L( o+ @2 q* y: }/ q9 @) U1.程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1
& O5 A1 f- I- N& u; c: Y2 O2.程序源代码:
% o% O' D) f" G4 F5 z#include "stdio.h" , z  `/ f9 p7 [* U+ }9 `
main() % s2 F) A0 x# M2 Q, Y9 m
{
( G* b/ ^( ?* M. O7 N# z& Wint a,b;
/ C9 Y8 s6 G! C) Ha=077;
' O0 }1 W. j8 J! sb=a&3;
% X3 u4 B/ K" ~8 D4 a( bprintf("\40: The a & b(decimal) is %d \n",b); ! N6 s1 |% X( `+ r% p2 ?
b&=7; 5 J5 }( u- S  N5 l7 K, e3 r: L! x
printf("\40: The a & b(decimal) is %d \n",b); . d5 m9 f  _2 x  ]5 g( c/ ~
} $ ^) p* n) U- W$ }+ Z, T2 @
==============================================================
, x8 f2 s& B0 d- F【程序52* z3 J6 h4 e1 {  \
题目:学习使用按位或 |
5 k/ n, e! A4 Z$ e1.程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1 : ]2 _3 m+ E- Z" Y/ g
2.程序源代码:
0 z/ ]& d, v, a: J+ {( G#include "stdio.h"
. h( T! |3 v7 [- B! mmain()
( [+ d  X( E/ b" F1 B& ?' j  z" j{
7 b8 S8 i/ a) i) U2 U* Cint a,b;
& f1 [' L6 v, r9 q' p5 g1 Ha=077;
. n  x/ `- {' L: Zb=a|3; 0 n) y5 [6 t% u6 A& b
printf("\40: The a & b(decimal) is %d \n",b); 3 I: D/ M* ]) ?
b|=7;
' ?0 M; \8 e2 I% e) Tprintf("\40: The a & b(decimal) is %d \n",b); - {# p. S7 V5 L
}
1 H  N6 u& G: G1 U! b5 z& C==============================================================
" N) N; ?% W; `* L6 r. a( |3 w【程序53嵌入式信盈达企鹅要妖气呜呜吧久零纪要 0 [. f2 m, b& Q
题目:学习使用按位异或 ^
) ~5 U& V6 L& K+ A! a$ V0 Q) C1.程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0
1 V& V( o# m3 g, \6 m, ^2.程序源代码:
# N3 X, o8 Q- G& \#include "stdio.h" % ?/ ~! H( Y5 F, K% r. Z
main()
' G# r# h$ W* i( ^4 }$ r" f" b! t{
1 ~* X$ L/ b  M6 qint a,b; % c2 U3 s+ x1 M( M1 s
a=077; 9 t1 |, L+ g6 p$ v" [: H
b=a^3; 7 m7 A/ B7 z- D8 r$ K* t3 A
printf("\40: The a & b(decimal) is %d \n",b);
! p4 n; q4 c6 q  Q) F" C; @" vb^=7; 9 ~: i$ d* R, ~/ B% y; J
printf("\40: The a & b(decimal) is %d \n",b);
* H% z! ]9 ?' s: k6 {% {& H}
$ A6 \3 _! g3 t5 K1 _6 D2 A- }==============================================================
& S% n) p" M2 K0 w) w# c' |7 b  |【程序54, V7 @0 h9 R* ^# S8 ]  d+ C6 x
题目:取一个整数a从右端开始的47位。 & y! _# S! s# c( g% P
程序分析:可以这样考虑: * o( L' T! f% q' f; x" z8 e- s
(1)先使a右移4位。
8 S. X; W8 B' _6 k  B& D(2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4)
/ d( r& R# M# J! o9 L& r(3)将上面二者进行&运算。 1 U0 N# w6 d0 ]2 e8 p
2.程序源代码:
$ x& \4 V9 n) f) k, u% P: o7 Dmain()
5 I4 S* I5 D! x/ B$ j{ 9 k3 d% e" ], e5 W
unsigned a,b,c,d; ! _5 ?3 w" P7 ^7 u( X4 o; B
scanf("%o",&a); 5 n+ T0 q8 j/ Y
b=a>>4; ( w5 V( ?! g+ X$ m' G
c=~(~0<<4);
* v0 t) X1 f" }1 A8 F/ t5 od=b&c;
+ }+ ?9 Q! ?# @& ^printf("%o\n%o\n",a,d);
( r- p1 g, V1 O9 H' ~" y9 o+ i}
8 c( S. e- |5 ^5 I4 i2 u============================================================== 3 Q2 O4 V: u3 H
【程序55: `% y# Y8 J5 J: o* L* O6 [3 n
题目:学习使用按位取反~
! k+ n* b. ?$ C1.程序分析:~0=1; ~1=0;
4 k0 h2 o) u* ^% c# u" M! ~9 z2.程序源代码: 4 u* _* W( |4 S% r2 F: ^
#include "stdio.h" ; @9 k8 q7 q/ e2 I0 M" p# I5 o
main()
- X: P6 J. b3 b8 |{
) m$ g) W) A; [" E2 {* q9 v. p: s' Gint a,b;
" H+ `# J: b, e( ]* sa=234; " s+ x& y; y) r# f8 N2 [5 [4 ]! U
b=~a;
9 U- \" X( V# v& C: ~printf("\40: The a's 1 complement(decimal) is %d \n",b);
, g6 ]5 h7 F, |/ xa=~a;
% q  @' X( P: D3 D* F& {printf("\40: The a's 1 complement(hexidecimal) is %x \n",a);
! q7 m5 ]! w: }6 S; q( @} ' s2 g; L& U1 n' f7 g/ E) T/ _
============================================================== # z: A! d( P0 \( D
【程序56& K. c: \! l9 P- \+ h5 U2 j3 x1 g
题目:画图,学用circle画圆形。 2 C: E6 I, G3 N" h% n/ L
1.程序分析: 8 z% e/ R, k# m1 q2 W, j
2.程序源代码:
. y5 `1 ~# U1 F/*circle*/
' N, x: O" ~% R' W0 ~9 {: T" j- |#include "graphics.h" + v8 q9 p0 n9 s+ `) J* F5 j
main()
, ^8 H5 m# Z' D9 k{int driver,mode,i; 3 W, c' B3 ]; e
float j=1,k=1; 0 y2 v/ w& Q7 C$ D! }
driver=VGA;mode=VGAHI; % O. ]# }3 x5 U) d9 A
initgraph(&driver,&mode,""); " L3 y' y/ S$ W' @
setbkcolor(YELLOW); & d2 ~, W3 N9 Y/ u" D9 j  c% w
for(i=0;i<=25;i++)   j* T& R8 x8 O& J1 K
{ ' X: t4 j& b% Z0 ?# C4 A
setcolor(8);
& l4 |& _7 h( }  g/ `0 B/ a0 V1 Acircle(310,250,k);
0 t6 v( F4 C; o7 }- O, M1 Hk=k+j;
% d0 g! v; V5 n0 Oj=j+0.3; * g6 u+ g/ H( U9 x9 N7 R
} ) Y6 j8 ~4 a: Q' X# p% l
} / x1 r; t7 a/ |) R
==============================================================
  ~1 ^, N/ _. R% x( J4 \0 `【程序579 g" S' \5 o0 Z# y- q' g7 D
题目:画图,学用line画直线。 1 {$ p" c) `$ f3 U
1.程序分析:
$ U, d- _9 n) ]6 p) c4 w2.程序源代码: % W% X" F$ j4 i$ m! P$ y* I+ j
#include "graphics.h" 3 f; M. ^" a$ b1 `9 X
main()
& F2 d: \7 A5 U% N/ _. z{int driver,mode,i;
# C6 Q4 C& g4 R; l* r) v9 Wfloat x0,y0,y1,x1; 7 ]1 E; H( q4 f1 V7 W0 _/ y
float j=12,k; / I+ |+ j/ a: J
driver=VGA;mode=VGAHI; - q! i$ w6 s3 ~
initgraph(&driver,&mode,""); , f% x% g: g- p( Q
setbkcolor(GREEN); 5 v# m' e# I( V& u$ ^
x0=263;y0=263;y1=275;x1=275;
8 _" O4 f3 w8 n- }for(i=0;i<=18;i++)
6 T, q6 s# ~! d* g{ ( O0 P$ a# n! ]  _
setcolor(5); / H1 D1 m5 [$ O: H* t% t
line(x0,y0,x0,y1);
. ~  [/ Z4 s. W9 X& p# ]x0=x0-5; * l% V# @1 ^, F% z6 L
y0=y0-5;
9 e- x5 M) v8 b$ R# Nx1=x1+5; : b$ j$ K+ u: Z! q
y1=y1+5; . m, d5 s; R! J, e9 U" X
j=j+10; 7 B; Q% i) i+ v1 P9 p+ x
}
3 O4 M% O" O  m! V+ y* rx0=263;y1=275;y0=263; ! X( s8 d$ k, B# K
for(i=0;i<=20;i++)
4 {: f. z4 ~( b' V7 `2 q1 z{ ; w7 v+ |& @' K
setcolor(5); " e, b7 \8 J  d1 j; X+ K) S
line(x0,y0,x0,y1); % B6 Z) Y, w' h% k  ^) h- @
x0=x0+5;
- P7 q' G. A; ]6 Y/ e# w4 r: ^y0=y0+5;
, l5 ?% p% U$ h. c- w- Vy1=y1-5; + v6 L0 u3 }% z4 K( w% l. b
} % I( a  f' y$ A* ^3 e# w' _
} & R' a% I1 M3 `( V* _6 F
==============================================================
+ K: V4 a$ K3 e0 U5 x$ u% r( s' [* ?【程序58' j0 p% v! ]& C
题目:画图,学用rectangle画方形。
, g2 A2 Q7 ~( H; L1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 5 _3 f, {8 P) d6 N1 y! E
2.程序源代码: * |3 `& v9 C2 I& g2 q. h' j
#include "graphics.h" * N" x% }" m9 r
main()
) j/ u6 K8 u# }2 v  v8 A{int x0,y0,y1,x1,driver,mode,i;
9 S& O0 z" H3 G. p) Ldriver=VGA;mode=VGAHI;
. I3 F, g, F# {" c6 U2 Winitgraph(&driver,&mode,"");
  ^& W1 e" T+ r+ osetbkcolor(YELLOW); ) a0 ]. G& U3 l/ }+ V8 t2 b# J
x0=263;y0=263;y1=275;x1=275;
' Z" k5 k' O* `: D, Y0 Efor(i=0;i<=18;i++)
' Y- F; F- L$ p) Y& V+ [. l- Z7 v{ ! g' G7 y' @: g- a2 ~. ^# r
setcolor(1); 3 C4 Z! S, P3 E$ ~+ p
rectangle(x0,y0,x1,y1); & f* ~1 v* W+ h  {# ^. k
x0=x0-5; 1 F- w' w+ ^$ B6 W. g+ A
y0=y0-5; 7 f! b9 G: E6 W( ?8 F
x1=x1+5; 8 B4 Y; n/ w0 O
y1=y1+5;
! m- S8 r4 _1 B  o* ]# l} " P8 Y: ]/ s9 v( M7 i5 |
settextstyle(DEFAULT_FONT,HORIZ_DIR,2); , _$ ^7 M1 U: A: ~1 S! _
outtextxy(150,40,"How beautiful it is!");
8 E8 {  P& E. M$ t% Fline(130,60,480,60);
$ z( C1 h: k+ a9 Zsetcolor(2);
9 O* @6 H' ~) x. ]/ _3 g  P# E- k# H2 @circle(269,269,137); 5 b# S/ s) m8 ~; ~6 w
} : F, S9 h& |" [3 e
============================================================== ( \" c# K# @# D* \% {- ?8 f! u
【程序59
; V  W- S7 n  u' \+ o& U8 {9 _题目:画图,综合例子。 ) B, `& h4 D9 q
1.程序分析: ' k* f* A' p* N* W/ G! p
2.程序源代码:
8 j% Q; r5 M) _  e  O* m: z# define PAI 3.1415926
5 ^% A  k& ^9 @* S5 u( D! F# define B 0.809
' |8 Q5 g- ?( \: I0 R; c; ]+ Q# include "graphics.h" , H$ X3 m/ }+ i5 ^
#include "math.h"
1 c. w: K- f: F$ E0 L4 mmain() 4 w0 f% G3 m: D! {
{ % @. v% z, @" l& G
int i,j,k,x0,y0,x,y,driver,mode; , _: M; U$ e9 g  ]; {! ~! Q+ @- u/ q" E
float a; 8 V1 _: p) L2 @" D6 `3 Y8 N
driver=CGA;mode=CGAC0;
9 o5 Q  r* p3 m# J1 ~8 Ainitgraph(&driver,&mode,"");
- k0 w  ^3 E1 E8 L; H& Qsetcolor(3); 5 w: B4 I6 l) t  e+ ?
setbkcolor(GREEN); 2 K9 t: A4 P* j
x0=150;y0=100;
& p+ m) H, [" g. O( ^8 ^circle(x0,y0,10); ( ^; {- g7 ?: V' d9 d
circle(x0,y0,20);
; W" j+ T: g+ j. y0 v6 Tcircle(x0,y0,50); 1 z( ]$ K7 A4 a. p. J
for(i=0;i<16;i++)
0 `# p2 I, K" T% u{
6 o1 J9 n/ y2 r  la=(2*PAI/16)*i; + _  }6 n# H, j1 V; _. ]% j
x=ceil(x0+48*cos(a)); ; a/ w/ q! ]) S, c% B/ ^0 Q
y=ceil(y0+48*sin(a)*B); 8 @: o' A) B* w" C
setcolor(2); line(x0,y0,x,y);}
' ^" w2 r) |" v; O  Nsetcolor(3);circle(x0,y0,60); 3 l, G0 E" D0 Q! t6 a- L
/* Make 0 time normal size letters */
; k2 \% X1 S6 ?& i9 @5 Ksettextstyle(DEFAULT_FONT,HORIZ_DIR,0); 4 y+ }  n" @" p5 z
outtextxy(10,170,"press a key");
6 E) p9 K3 m: P5 Z* J, y/ E% agetch(); , u3 Z1 M+ N" ^% \) Z0 g
setfillstyle(HATCH_FILL,YELLOW); ) Z  C: n& W0 G% z3 r. [8 M, F. k
floodfill(202,100,WHITE);
0 D# M; P. D7 K, _* Ngetch();
- `+ t9 N; }4 k8 b9 e$ Gfor(k=0;k<=500;k++)
  N/ C5 H+ n( Z4 e! J4 `% o$ s  q{
& p3 |2 T: D2 ^6 _% U, G; Vsetcolor(3); 0 r1 g) O# }0 v$ \
for(i=0;i<=16;i++) : Z1 M5 u- G, t* Z  X, r0 v
{ # J9 S+ N: n# k3 Z
a=(2*PAI/16)*i+(2*PAI/180)*k;
9 }8 x2 V4 e* C& lx=ceil(x0+48*cos(a));
: D  _+ M' |8 V3 s" C' R; ry=ceil(y0+48+sin(a)*B); 3 w; ]/ I  F5 A3 d: Z
setcolor(2); line(x0,y0,x,y); ! e6 q0 Z. o$ ?/ ?& Y, Z! t$ P% G/ ^
} 9 N: g* ?6 x/ }8 h
for(j=1;j<=50;j++) ; t. x& \6 l3 g+ p+ Z+ R  K
{
1 z' K6 D0 h* U/ w! ca=(2*PAI/16)*i+(2*PAI/180)*k-1;
9 ^0 y- `, S2 C8 y; k  |: hx=ceil(x0+48*cos(a)); 5 O, J3 o) Y6 Z' I! C4 {6 X
y=ceil(y0+48*sin(a)*B);
8 p  P0 P$ ~) T4 N3 Uline(x0,y0,x,y); 0 B% i( c' J  r2 E' ~- O
}
  v7 X4 ^6 s' K. w4 u}   B8 m  D) t! i
restorecrtmode();
/ p: Q7 p5 w8 d}
, f  T" y9 i/ P. a/ W============================================================== ) k* Q- e( n  H2 i1 B
【程序60* C4 O& i% s- l3 f" a& p# Y
题目:画图,综合例子。
% \7 s" u" L: V3 l1.程序分析:
2 I9 E% C  i8 U2.程序源代码:
% z* y" l" o5 T, B. a" Z- i#include "graphics.h"
' ~7 x4 c- [5 @1 r#define LEFT 0 2 ~$ h$ p+ J8 Q2 O8 @/ |
#define TOP 0 1 C+ G2 z" ]2 h5 U. U, U+ U$ I8 u
#define RIGHT 639
: k( W9 d# B' r. A8 P" V) N9 c) e#define BOTTOM 479
7 k5 T* \$ W1 _+ @, u#define LINES 400
0 ]$ s+ s- E7 W. t#define MAXCOLOR 15 . c3 x( Y& \, ]6 l+ o
main()
* Z2 V" G, U. x. @: S: k{
- F& [: m3 s4 ~9 G& n: }int driver,mode,error; - Y) f4 s: P7 u; e% f
int x1,y1;
) s, B5 l' x$ i/ l7 F% Vint x2,y2; ; d5 t, M* @6 |
int dx1,dy1,dx2,dy2,i=1;
5 k+ d8 B4 r1 ~: u8 Z+ E5 jint count=0;
! L' `" Z' U# b, y$ \( @int color=0; 6 g! u& P: u' F
driver=VGA;
: N4 K1 J- Z7 n" L) N) V! Mmode=VGAHI;
1 x. ~! S* \) V+ ^initgraph(&driver,&mode,""); 3 \+ d' H; G( z& `" a0 k4 z
x1=x2=y1=y2=10;
$ F4 k- E( c# v: i$ B- J5 edx1=dy1=2; 4 _0 O& a& Y. R  h, k& w! Q4 F/ a8 V; D
dx2=dy2=3;
9 l2 h6 U$ F& Cwhile(!kbhit())
' g! I4 a( Y: h4 `{
. O! _) Z7 B5 Y  Z- _* k7 |: eline(x1,y1,x2,y2);
' O4 m  J' y9 m/ Wx1+=dx1;y1+=dy1;
" b7 ^* K4 z2 {& k0 h& kx2+=dx2;y2+dy2; 8 W( P8 H* Z  d% L' K+ r* o
if(x1<=LEFT||x1>=RIGHT) 4 ]$ p2 n& Z" D6 ]: g
dx1=-dx1; 6 E6 K8 [7 p$ G
if(y1<=TOP||y1>=BOTTOM) 3 j  [! I  `  g  \3 }" k3 p
dy1=-dy1; ( k( ~6 W& ^0 I1 o9 Z# f9 p
if(x2<=LEFT||x2>=RIGHT)
" D& V/ y, R7 ]9 c$ M" ]) ndx2=-dx2;
2 _; `3 m- v' S4 ~1 w' v# }if(y2<=TOP||y2>=BOTTOM)
9 g" C) I8 ^, a7 a9 a# mdy2=-dy2;
; }. v9 E; ?5 H: z6 L. J- h: M8 Hif(++count>LINES)
$ R  V6 k2 S/ a  Z. ]{ : {$ i1 V) S0 o, b6 I% @1 I6 K
setcolor(color);
# E6 f# `1 N  P! p. Fcolor=(color>=MAXCOLOR)?0:++color;
% i( @1 h- p# i5 t}
- D; d) k, q5 K! d. a" l+ W+ x9 {9 z}
; @% b% Y; y7 L* x- V: c. sclosegraph(); ( C9 `1 f6 c* Q+ X2 d7 e9 u6 ]
}
【程序616 `, G# m/ ^: [; I. u
题目:打印出杨辉三角形(要求打印出10行如下图) 5 _1 ^1 s* e, w- f" ]1 f$ O
1.程序分析: ! D) [5 [. k9 O# `5 m8 d
1
% a  t# V3 [8 ]6 k. c2 U: A; N& K+ p1 1
- n: e( j0 Z$ C9 a, V+ ?1 2 1 ' a& J" I/ F7 R9 t5 w$ \
1 3 3 1 9 _- g! F2 ?5 o( S+ \
1 4 6 4 1
# l5 @4 J8 t) V8 g/ ^5 C1 5 10 10 5 1
) W: x6 |" w+ `. U( U2.程序源代码:
5 ?6 k1 [+ n7 L" M0 |main() 1 G, `$ r) V; ?0 ^* g  i& G
{int i,j; : x6 r# l0 U' L
int a[10][10]; 0 N/ _) P: _4 v7 S, b7 h
printf("\n"); 8 Q6 s; H  M  C* @
for(i=0;i<10;i++) - {/ h! z- o4 w9 `9 G
{a[0]=1; $ x) d; p/ O  n4 {
a=1;} ! x/ v- e. J6 T) ]' Z
for(i=2;i<10;i++)
2 y. P! V( V9 G" w" g4 Ffor(j=1;j a[j]=a[i-1][j-1]+a[i-1][j]; * \; V) ~$ Y6 v3 y' \4 p& _
for(i=0;i<10;i++) 0 }  g' C! o, a! D: e& z' b  g
{for(j=0;j<=i;j++)
) s0 l) k- \' }( G0 o  C: Oprintf("]",a[j]);
- I0 x1 Y+ G; H$ uprintf("\n");
0 M. i6 n9 K4 E}
, {) f. o$ m- Y# N}
2 L8 @& G& a% L8 e7 R============================================================== * t& d- _2 t4 B- ~
【程序62# z$ r6 }7 I! x% s$ l0 B' x- r6 h
题目:学习putpixel画点。 $ w! E1 a3 t, q2 J
1.程序分析: ' D# V% D  C/ w
2.程序源代码: 2 V2 B. {8 o1 t  y( q' B2 t+ q
#include "stdio.h" # Z; F7 r& Z) t+ f. O
#include "graphics.h"
6 V; a& S9 }8 N$ j0 Wmain() 4 G& ?) t6 m; u
{ : z1 ?+ w! z# R8 |
int i,j,driver=VGA,mode=VGAHI; # D" V1 V2 D' ~, J% u
initgraph(&driver,&mode,""); : `. @" A( d& Y  J1 b) L7 g
setbkcolor(YELLOW);
, L, h8 ~. R& R& }, Z# Kfor(i=50;i<=230;i+=20) - x4 t, v( b' r
for(j=50;j<=230;j++)
. d0 N. J  ~5 o9 Lputpixel(i,j,1);
6 X; H; `  d7 n' R, a  b% zfor(j=50;j<=230;j+=20)   n4 [8 M. n/ \6 c* R
for(i=50;i<=230;i++)
3 H6 W6 x; {* H7 v* ?putpixel(i,j,1); ' }5 Y; Q3 Q- D" {0 t0 L* E0 x
}
) k: E( l1 d# g9 {5 @# N* v============================================================== 2 |/ M4 M& U* m1 [3 _" s. n+ t
【程序63" U2 k4 R& `) V
题目:画椭圆ellipse
2 \3 J/ A# t: L% m( c! F# C+ f1.程序分析:
8 N. r9 c$ h" }: l8 L$ l2.程序源代码: % @1 E( E3 [0 E
#include "stdio.h"
' S- x! c: J: i4 ?  X9 T/ m#include "graphics.h" 7 u$ V/ z! T7 g( j. B- m! }
#include "conio.h" ! l# _3 T; U) D
main() 1 S6 e1 |+ a7 A
{ : h1 M' H$ `) f$ o' R+ K, c8 K7 l
int x=360,y=160,driver=VGA,mode=VGAHI; % Y/ k+ _: B: u" M/ D$ }0 X
int num=20,i;
5 R6 v$ o3 ~) X) P; N0 Qint top,bottom;
. S/ Z8 ]( m6 C) h  Q7 \# w# {initgraph(&driver,&mode,"");
1 J' l# r' }3 A# qtop=y-30;
" {" p( a* I5 T* Xbottom=y-30; 7 W7 _/ _( F1 A. d
for(i=0;i{
- A0 [" G% r" }# J4 k% S" Zellipse(250,250,0,360,top,bottom); " J! |7 a8 J, H. D- l* Y3 C8 [
top-=5; . t! R0 ~4 y$ J0 h7 N- {. o. N+ }
bottom+=5;
% D4 t5 w/ n0 c0 c( l  a3 L5 c}
0 ^# `" f  ~8 a9 E; \/ p4 zgetch(); . c0 x  ]0 i0 O/ e3 a
}
: L$ _+ H8 B/ x==============================================================
, E) C4 ~6 V; Q6 n【程序64
5 ]/ Y9 k, m/ Z题目:利用ellipse and rectangle 画图。
) K# C3 ^+ F. ?4 O1.程序分析: 6 @- l- I) T* A& J6 l
2.程序源代码:   i! f2 c* w# a( @
#include "stdio.h" + y1 _( b( {% w+ y4 u/ o. s- g
#include "graphics.h"
2 k- j; T3 s9 d* Z/ m  Y#include "conio.h" + }& H% ?& |" Q  t
main() 1 u$ Z- g6 v+ d
{ , q/ q. j0 R  h' l( T
int driver=VGA,mode=VGAHI;
1 f: c7 z9 \) b! {int i,num=15,top=50;
& u) h7 g8 _& ]6 R, Jint left=20,right=50; 4 I8 {# e- c( U& o  G
initgraph(&driver,&mode,""); . H8 Z7 F5 {2 b' ^+ W
for(i=0;i{ 0 V1 Y6 x8 b8 j& e0 F8 R6 `) D
ellipse(250,250,0,360,right,left); , {" }! t8 B2 M1 p$ w2 ]/ L- c) V8 l
ellipse(250,250,0,360,20,top);
* _7 L! S; a1 f* K" mrectangle(20-2*i,20-2*i,10*(i+2),10*(i+2));
( X9 l2 s  Q  |6 G3 Zright+=5; % o# m' D* y7 M! `& S' \
left+=5; + \6 x% }9 X! @* @
top+=10; 2 }: o+ c' D+ @7 j. g
}
- ^' d% j3 O7 E$ z9 D9 t* M2 ngetch(); - c6 R! ?1 S' M8 u  w4 D3 }+ M
} ; J4 L/ x, P  s! G
==============================================================
) z( s  ^% I3 h* C9 ?【程序65
: ~7 W; S7 g3 ]4 V/ C题目:一个最优美的图案。 : {( U+ k7 ?5 L( p& S% x
1.程序分析:
/ U/ s2 v+ W; B0 j- z9 {! i. K2.程序源代码: , o" J! G2 R, y6 r! ]0 G
#include "graphics.h" ( T& G6 x$ Z, Y# n! k& o
#include "math.h" * z- S& n0 }. v! {
#include "dos.h"
9 r3 g/ \3 i. d3 N  Q* C#include "conio.h" 1 Z) q3 C+ X1 {5 n$ Q% B/ t1 e
#include "stdlib.h"
% T3 L2 p5 B, d$ T#include "stdio.h" + p* w& n# d5 f, t
#include "stdarg.h"
/ v) M9 |2 U/ H# P; e/ h* f#define MAXPTS 15 ' i& t6 ?) g3 u2 @* J
#define PI 3.1415926 : |" I0 o( ?0 g9 }5 ?$ v: s4 A
struct PTS { 8 K4 D, r7 g& n, V9 b* R
int x,y; 0 K- _% n# S# Y
};
' b0 f' u. i! Tdouble AspectRatio=0.85; 2 u6 B2 D. z' N
void LineToDemo(void) 8 b% D& o% \  u. B
{
5 P* L2 k* C; P- mstruct viewporttype vp; 2 U' y8 q! j' q% u. Z, l
struct PTS points[MAXPTS]; 7 ]% k6 _. K7 d8 @2 ^3 K
int i, j, h, w, xcenter, ycenter; ' O; P6 `8 d! z# ]; v2 k+ \, z! E
int radius, angle, step; / {/ b, \9 [  k3 Z1 ~2 k
double rads;
4 S, y" n4 \8 h( A6 D1 x  y0 f+ Pprintf(" MoveTo / LineTo Demonstration" );
' l5 `0 J; Y: P: G, K! {getviewsettings( &vp ); ' [/ Z& a; \& s- t! b
h = vp.bottom - vp.top;
" g1 x' ~; c0 A, qw = vp.right - vp.left; " p* A% Q% Q& p
xcenter = w / 2; /* Determine the center of circle */
; V* [% p9 q  e5 a$ z( v8 A$ Q: sycenter = h / 2;   s# k/ ]; T+ h5 W5 J: o* u1 \* o
radius = (h - 30) / (AspectRatio * 2); 2 f! }" @" S# H0 J
step = 360 / MAXPTS; /* Determine # of increments */ % u* w! H! d& {" `$ t$ [2 s
angle = 0; /* Begin at zero degrees */ - w( [' c- @" F  `' c7 {+ k; M
for( i=0 ; irads = (double)angle * PI / 180.0; /* Convert angle to radians */ ; @% s( P# [" ^- Z  a
points.x = xcenter + (int)( cos(rads) * radius ); 7 C( G+ s) t- J: u" k" N. M
points.y = ycenter - (int)( sin(rads) * radius * AspectRatio ); ! F6 Y: j3 ^1 }/ G, o
angle += step; /* Move to next increment */
; W7 w2 E4 n7 T4 |3 [}
* x# c. ?/ Q9 J7 F1 mcircle( xcenter, ycenter, radius ); /* Draw bounding circle */
0 J& E( h" L: Xfor( i=0 ; ifor( j=i ; jmoveto(points.x, points.y); /* Move to beginning of cord */
6 V2 A5 H. L, s5 R2 ~# E0 n# Elineto(points[j].x, points[j].y); /* Draw the cord */
/ m* @* d- V. R} } } ( w$ ^- |9 H. O6 u6 D5 x- }, }9 q
main()
6 a) F# T3 V  j" w6 m7 o% i/ m- J% X{int driver,mode;
" O9 P( H' H! `. E) qdriver=CGA;mode=CGAC0; 5 ?3 p2 N. n3 |! Z# O& r6 u; F
initgraph(&driver,&mode,""); . @  l* p: c6 }+ ~& m& Y
setcolor(3); / S$ M) P$ T8 p, F- X+ l7 k3 \& u
setbkcolor(GREEN); ! W+ `8 u9 g3 G& G7 M5 W4 W
LineToDemo();} 8 ~: [4 c5 ?3 M( y
============================================================== , U" C* m/ E; y# t
【程序66+ f+ Q1 Y7 @/ s7 d# J  c
题目:输入3个数a,b,c,按大小顺序输出。
0 t1 l* I# n) R! z; [1.程序分析:利用指针方法。 / Q. F2 J9 g' c; p5 E0 Z1 F/ K) J& T
2.程序源代码: , k* f# w5 M: t% J1 u; {
/*pointer*/
! _, T4 t7 s5 e) ^# `5 Lmain()
2 }! ^& c; `( b4 ?5 ~. X2 S" p3 |{
0 m5 M1 A- R  x: N$ t2 Yint n1,n2,n3; % E- X6 s  d- k0 Z$ P
int *pointer1,*pointer2,*pointer3;
% m% X1 o% `5 T( X  S/ c: c% Qprintf("please input 3 number:n1,n2,n3:");
: T% o% m1 r+ V! Y% B  M  ]3 K2 uscanf("%d,%d,%d",&n1,&n2,&n3);
  _9 I! @0 K( O! D- m6 Tpointer1=&n1;
2 J) D  w' V. F1 y) G8 x  Ppointer2=&n2; : q7 \" D7 v' R6 }! q1 |
pointer3=&n3;
5 U0 A7 @& M0 mif(n1>n2) swap(pointer1,pointer2);
1 K. T2 g5 B% u: mif(n1>n3) swap(pointer1,pointer3); % ]" B8 K6 B* t2 w" i: D7 A: S& }' }
if(n2>n3) swap(pointer2,pointer3);
: a& [1 f' ^- ]3 i" k: K  Aprintf("the sorted numbers are:%d,%d,%d\n",n1,n2,n3);
/ |/ A  k/ f& L* L}
% Y& k5 @. a4 p. h2 Xswap(p1,p2)
! H, T; D% O& j' G+ }int *p1,*p2; : ?' ]- E' I  W9 d3 V7 H$ B
{int p;
4 w! l& M( i0 Q5 t2 q% sp=*p1;*p1=*p2;*p2=p; : b9 M, }3 v& b. R1 [4 i' v
} 7 ~3 e9 X+ D2 h5 N* U$ x
============================================================== 9 f, @+ i( ]# t' \8 q. }
【程序676 s7 u$ X0 y& `) d, `$ r# l8 d
题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
' A- B" a, u  R, {4 @1.程序分析:谭浩强的书中答案有问题。
: W& w6 d, l% c; d8 i2.程序源代码: 4 W5 d0 N. i5 J; R$ d# [; m
main()
* ]; _# }7 |& Z4 g0 f8 z{
& W" i5 R% i$ ~int number[10];
: f6 v0 e& |* {; V* E7 {% A# Jinput(number); 3 C6 U' T0 Q* {1 M+ R
max_min(number); & O" ?& z* c* y# b' t# K) V
output(number);
9 `) c! o6 B1 W8 h} " v, c- i0 V3 L/ q
input(number)
0 k/ E+ J9 d- M; e( E& r0 Bint number[10];
- u- {2 s) Z0 Q3 f) K{int i;
2 I. O& H8 o- R: v- U+ c3 Gfor(i=0;i<9;i++) * g7 m3 t$ j1 P
scanf("%d,",&number);
4 h. w! Z: k  ~% k1 ?- x5 S0 Ascanf("%d",&number[9]);
# x+ s9 w+ z, H7 e. h2 Y} ! E9 L) k& F* |, Y+ [9 P0 k
max_min(array)
: R: c2 }! A+ J# ?int array[10]; % |2 j' n3 f, E
{int *max,*min,k,l; 0 T) O/ Y5 c. B1 j9 R3 \
int *p,*arr_end;
; i2 Q* l- `5 d2 o5 u( J$ ~; c  R4 larr_end=array+10; - {7 f& W5 J3 i8 `
max=min=array;
4 m  u' g+ ~  }/ H4 j1 m) Xfor(p=array+1;p if(*p>*max) max=p;
0 q9 {) U" W" U" U. zelse if(*p<*min) min=p;
. P' `1 U: m/ F1 bk=*max;
0 g% m" d4 S! Y% ?7 {l=*min;
* y! j/ k2 j$ W+ N*p=array[0];array[0]=l;l=*p;
; ~/ w+ p$ p/ ]4 e*p=array[9];array[9]=k;k=*p;
" Y  V8 i" i2 p8 m3 q( U6 Lreturn; & u8 T" B; L5 ^
} 7 w( H% r1 Y/ y0 I! k* j- a9 e
output(array) ( f; s$ W3 H. |
int array[10]; ' f7 G6 O+ |0 ]( k7 S( I) N( }
{ int *p;
3 b  g( u0 j$ Y/ |1 V  I# b0 tfor(p=array;p printf("%d,",*p);
! A0 K  z% g) ^# H6 p2 Xprintf("%d\n",array[9]);
1 r/ o& p4 m& u4 j9 t9 t8 ?: c5 X} / i" v$ m0 K/ Y: }& [+ ^
============================================================== , i' N* @* l: A$ i4 L+ |

: V- Y# a; L* E) G$ m9 {3 w& j) {

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-19 10:02 , Processed in 0.141602 second(s), 23 queries , Gzip On.

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

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

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