找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

C语言经典算法50-67

[复制链接]

114

主题

136

帖子

1000

积分

四级会员(40)

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

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

EDA365欢迎您!

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

x
【程序50
' n2 K/ D* ?6 h1 ^题目:#include 的应用练习
6 ~; v+ h1 F/ T# B4 O  x1.程序分析: ( G$ }% L- N9 U2 ?
2.程序源代码:
1 J, D4 M; X" {4 s; {, `2 Xtest.h 文件如下:
4 h6 S$ Y) i& x( W' G, P#define LAG >
6 Y0 W4 x9 k% \" w& r#define SMA < : ~! p% q4 `3 D! b2 R
#define EQ == 6 Y! m6 C0 y7 t( q
#include "test.h" /*一个新文件50.c,包含test.h*/
" G! K) {  v; [0 x1 i! N) z" D#include "stdio.h"
. x; Q8 [% r- M4 \void main()
; Z0 D# X( B+ `+ s, a5 {{ int i=10;
( r) S! n+ q) s; e% ]3 Fint j=20;
2 H! S4 d. A/ G' h* iif(i LAG j)
$ r2 r2 J: Y7 H1 R, l6 Rprintf("\40: %d larger than %d \n",i,j); 5 K: G* [$ r. ~4 O' z) m/ p2 ~* v1 M8 O
else if(i EQ j) ( `/ t- J! E! q, C6 N$ {/ D- Q
printf("\40: %d equal to %d \n",i,j);
) k2 P- Y2 f9 F6 K) p# Yelse if(i SMA j)
2 v- t1 H4 E! |+ @5 H& `' zprintf("\40:%d smaller than %d \n",i,j); ! O( P% G" Y  U- @
else " F. y$ H: j  O$ C9 [7 j" @
printf("\40: No such value.\n"); 4 {( B( p! y1 D$ I4 _
} 0 u/ c/ M3 U$ I( @! \! e  X) Y! a/ [
【程序51, M2 [9 d, ~7 n. a2 o
题目:学习使用按位与 & " P3 ~) V' k5 z& f7 h
1.程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1
$ L* N$ C' d- T* o( i" g% s) J2.程序源代码:
4 \# J2 V0 C; X1 c3 d3 ~#include "stdio.h"
- X' b; U9 ]- I4 l+ v5 pmain() ) T1 ]- y; x8 t3 ?3 p" |
{ ' d: P6 y! [. c4 E* r( a* V# Q% }
int a,b; ) F% P9 k. a, A2 }
a=077;
' @$ X+ |- l% r5 Lb=a&3; & v6 N- a: Y2 ~
printf("\40: The a & b(decimal) is %d \n",b); 8 h' @: n, b& H: z# y
b&=7;
( A& f, F' p- F0 L( _/ Y  Uprintf("\40: The a & b(decimal) is %d \n",b);
6 o& a/ X4 a0 C} 2 x( i) z: U8 L" C4 {
============================================================== , N$ \" ~0 x" o2 T" n
【程序52
' k2 [$ M4 Y- C1 V- v; r' Z  u题目:学习使用按位或 |
4 [) l3 p; E' E+ j1.程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1
) o) ^  Q" G4 T; u+ ]2.程序源代码:
5 r6 J: C7 c3 b& g! r: j% @5 c3 C% W2 D#include "stdio.h" 5 m( H) }) b% i' s2 T; B( a
main()
7 h0 v- `# Z) a  t/ s7 O{
1 X- q! i6 s; m, X2 }" ~5 _& k" wint a,b;
) n0 q  P' B2 a$ a: O( g  ma=077; : W3 F/ z+ k$ s; [2 U
b=a|3;
3 X4 G  E% B2 }8 x8 U/ D  }$ Y  ]printf("\40: The a & b(decimal) is %d \n",b); 6 O; @% w8 E& e
b|=7; , L! }4 a+ q- L. B+ T. M8 `8 p) k
printf("\40: The a & b(decimal) is %d \n",b);
/ h8 Z0 C/ F0 e* l}
( u$ |8 f% R2 I/ q! \============================================================== 7 ?( M( @7 t2 j4 @" C4 h# W' e
【程序53嵌入式信盈达企鹅要妖气呜呜吧久零纪要 5 Z8 q* Q* o5 U8 u4 d
题目:学习使用按位异或 ^ # w  ]; A' @; Q! l" C2 s
1.程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0 ! I7 I5 Q) @: C9 s+ |) L# L
2.程序源代码:
- J* B, n$ E9 e1 R" L' \#include "stdio.h"
, [. ?) a" A+ Fmain() # c7 k/ ]* p" O/ X
{
, B4 l3 x' j8 g: C# t& kint a,b;
& ^+ ^' {' x  Y0 X! [a=077;
/ {0 D& D* i$ V0 ?: |b=a^3;
$ E! c: b1 O2 gprintf("\40: The a & b(decimal) is %d \n",b);
' H2 |: G. N4 A9 Y& Nb^=7; 4 q2 l* g; M  n. \) C: C
printf("\40: The a & b(decimal) is %d \n",b); : }# ~$ ?( n* F3 \" N3 P5 M5 N
} 1 v/ H9 ~! g$ R  R! |
============================================================== & V1 _6 R& ~  W: j8 t! ~- z0 [
【程序54
7 [! I0 j  ]$ z: Q0 b, ?' K题目:取一个整数a从右端开始的47位。   n. X% ?4 s$ q# E7 w
程序分析:可以这样考虑: # _- e7 I3 ?# B
(1)先使a右移4位。 9 M$ A/ i! B9 X
(2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4)   v* n+ v: v- |& l
(3)将上面二者进行&运算。
( M# s8 S/ F8 l$ z0 E( Z, ~/ C2.程序源代码: 6 m- c' H$ g7 D* \
main()
" m0 [& g2 ]0 K4 J) E0 }& E{
7 C+ @% X0 b. @& L! |unsigned a,b,c,d;
7 ~- c1 a0 M: Qscanf("%o",&a);
) z' _5 y) e0 U2 k  X# z3 F" Tb=a>>4; 2 N& @" {  g$ a8 B
c=~(~0<<4);
$ [/ c" T* U. V( xd=b&c; 2 H( ^/ D6 Y3 n( ^
printf("%o\n%o\n",a,d);
& F$ V- ^7 e( m* h& S, p9 G} $ i9 v$ z6 n' t8 b5 Y$ ]: p1 h
============================================================== 9 K# F/ F9 r) p2 I( X; \
【程序55# u) n/ O8 S2 u$ g0 E
题目:学习使用按位取反~
6 C# n7 a! \% z3 R  ]* n1.程序分析:~0=1; ~1=0;
3 J  Q& s& p; Z; T0 `2.程序源代码:
1 z* r' Z8 J0 l; z* j#include "stdio.h"
* i$ ?3 u1 F7 N6 ~main()
. V  P: ^* k1 H$ Q8 [/ g{ ' A: F- k/ H! T) F" L" P8 w
int a,b; 6 H, x* }; `; _
a=234;
0 y+ ~8 M, b9 ^3 ~8 gb=~a; 4 C  ~. D' u/ v8 t; F% X* p
printf("\40: The a's 1 complement(decimal) is %d \n",b);
" K/ h$ K& j3 h0 J3 ca=~a;
" b# Z9 ~  a1 A# P7 d( Y( pprintf("\40: The a's 1 complement(hexidecimal) is %x \n",a);
! e4 ?  E& f" o+ {2 Q& J' n5 [} 4 V7 U! o& {0 ?
==============================================================
& k6 W1 G/ l* k* y: x) P【程序56
9 Q4 C: J) F- w+ l- Q3 `0 v- ]* D1 J7 I题目:画图,学用circle画圆形。
) r. M) P# i0 [( }1.程序分析: 4 }7 f5 |3 r8 X3 T
2.程序源代码:
( }  ^3 f1 n4 W& F" C9 G/*circle*/ 9 s+ }0 L0 m, P+ w& X
#include "graphics.h" 7 t" m8 F  U- ], u4 R
main()
* `! Q! n# m" B& ^5 G{int driver,mode,i; ; G7 x# A: ^5 t" {- Q, F' m
float j=1,k=1;
  |: g$ Q) q8 ?4 _2 s( g$ x% q. g3 Ydriver=VGA;mode=VGAHI; 0 ^/ X, O6 C, v8 T% h
initgraph(&driver,&mode,""); $ F6 c' M$ t2 F" O4 I# ]8 s* r
setbkcolor(YELLOW); 2 }7 j: o+ y  {% b& i: e, o  X3 S
for(i=0;i<=25;i++) ! \/ S. b! ?! _: Y. c, v. m
{
+ H7 n7 f) g- k: asetcolor(8);
- M( T, {4 D9 G& E, r- W2 ^circle(310,250,k);
5 b! N. _2 P' Y+ g; ek=k+j;
' i; Q) H, a& k5 J6 I  Pj=j+0.3;
; o! J% k  z- c}
4 i. O& x( B# u" ]} 6 I3 ?5 r) I2 ~' ]/ Z
============================================================== & g, U1 _3 }( v+ Z; v
【程序57% v+ l0 `$ {, c4 v- u) v' c
题目:画图,学用line画直线。 & {. g, _& k, z; C7 }# ]6 _; `
1.程序分析: . O5 N$ H5 p" k8 @
2.程序源代码: - X9 D1 ^' E4 ]8 ^* f* e. r( M
#include "graphics.h"
. d. _5 _" q! imain()
. c: I2 W  ^' B' U! x% B4 W{int driver,mode,i;
2 c+ |, C5 h  v. M( G6 j( Gfloat x0,y0,y1,x1; " R7 n; M; ]2 Y" }- w2 O7 w
float j=12,k;
: h/ ~9 t2 v- p. Kdriver=VGA;mode=VGAHI; ) c5 I: j2 J. w, M3 m
initgraph(&driver,&mode,""); " ^3 x) i2 D2 k( v
setbkcolor(GREEN);
+ t  d5 l4 O7 Mx0=263;y0=263;y1=275;x1=275;
- S4 V4 S/ r9 \4 f3 m2 s4 |for(i=0;i<=18;i++) 1 W1 z& Z; ?1 X- c7 B1 i
{
, }9 j. l# U* X0 Q. p  t; m7 Ssetcolor(5); , R$ z& r1 ]# H& c8 G" {& m
line(x0,y0,x0,y1);
5 S: x( `  H. I" Qx0=x0-5; " ~( X8 q7 E% l0 v* d2 c( Q) r; B
y0=y0-5;
9 t, K4 B" s; h$ [  A  D9 f5 I' `x1=x1+5;
! Q& M) @9 ?, j  M+ r7 iy1=y1+5;
  t, z0 \, W! `+ Hj=j+10; * K) h$ x" c+ \0 ], w
} ' {) |3 {/ V/ u/ M, S% M+ h. q
x0=263;y1=275;y0=263;
; P/ K: F* j: I2 p% q6 Lfor(i=0;i<=20;i++) ( ~2 z: q+ N. d
{
  y0 i6 j4 t. L- t8 R$ h- ^setcolor(5); / j- N5 Y1 r# W9 u% J
line(x0,y0,x0,y1); 4 {- c! M( q8 L# G$ e9 j! c* l4 N8 F
x0=x0+5;
: m% {& X6 f7 H: \' Cy0=y0+5;
% ~0 j, @7 _9 P) Zy1=y1-5;
. v5 c, j' H0 r2 ^1 j} 2 I% r5 I# F# \# a3 O2 A6 B) j) A& ?
}
" f5 \% l8 w& o3 k& c8 j9 \4 D==============================================================
- H" _% T1 D: e0 _( ~6 M3 S【程序58# A9 I8 ^6 V4 P5 ]% F) I! v' G
题目:画图,学用rectangle画方形。
  w9 `8 M, Y  ^; J5 c6 H6 T+ q1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 3 N4 r* m( E: M7 q
2.程序源代码:
: ^4 p% U* j5 J( b- R7 M( X# B  l8 u#include "graphics.h" ' o3 u$ H3 ?, n$ }: }* ^% O: k$ n
main()
& J& V4 G, e" g8 I# u( Y, p{int x0,y0,y1,x1,driver,mode,i; 9 H% \3 q, V0 V& E
driver=VGA;mode=VGAHI;
! m6 ^7 H! N4 v" oinitgraph(&driver,&mode,""); ( p; y& ~% d8 r3 ~' |' G
setbkcolor(YELLOW); 8 ^, x3 `8 U& U. p1 f: Z
x0=263;y0=263;y1=275;x1=275;
1 s; R* n- ]- v5 ofor(i=0;i<=18;i++)
; ]8 J( _8 O9 K" H8 h  A{ * v+ c/ o5 T: ]4 w% N2 \
setcolor(1);
7 R; R. n7 b- l7 brectangle(x0,y0,x1,y1); 0 O6 o4 \3 ~( n
x0=x0-5;
8 i( S( r. ^9 @0 oy0=y0-5; # l# R6 `( y8 W" m6 e: e
x1=x1+5;
* t" F- `' \, H; S* Qy1=y1+5; 5 }( U; G# |$ K5 H1 L$ |/ E
} ) z# Z: M' Y# P+ b" C9 ]
settextstyle(DEFAULT_FONT,HORIZ_DIR,2); , o5 l7 z5 [3 q9 S* F
outtextxy(150,40,"How beautiful it is!");
& q! u9 _" u! m9 {$ Aline(130,60,480,60); & u* L# D* Z3 O4 w
setcolor(2);
6 G) I6 s* _0 r2 O5 _circle(269,269,137);
- Z! h9 z) F! u3 i+ m}
4 O# H' [. f9 m1 n) Y( w============================================================== : Q- ?# K* J8 c3 M+ c
【程序59
: |9 A1 j( f1 l8 N; t题目:画图,综合例子。
" p8 \. O! T# G& s2 z8 ~1.程序分析:
/ P: d) m/ v4 f! S  \1 H2.程序源代码: . y7 K( R4 f2 s4 [7 `& y% }" r; [
# define PAI 3.1415926
: |' n0 p$ C9 \! V) E/ t# define B 0.809
6 k$ c3 E6 @( R9 c2 z( V5 b# include "graphics.h" & Z. ]$ S( X% k% n9 T9 A3 |) M
#include "math.h"
' Y' \: |/ G$ ^4 K" Fmain() * e$ p  y4 E( w6 A* i* d
{
9 F$ r  t' G8 }. @( vint i,j,k,x0,y0,x,y,driver,mode;
* y0 I6 Y/ x' L' T& Vfloat a; $ Q% \, [1 Q! l- {) S
driver=CGA;mode=CGAC0;
5 T& N( B& t+ ~5 Finitgraph(&driver,&mode,""); 9 H' E* y2 k4 h5 l* X9 n
setcolor(3); & [6 e2 D  ^& ]$ v/ l8 }/ w
setbkcolor(GREEN); . u; u, }& T2 X/ c  N) ]1 ?$ L( G
x0=150;y0=100; ; P( v4 \6 }: w1 Y! y3 s& F
circle(x0,y0,10); 5 X7 w. c* P1 m& u; M' O
circle(x0,y0,20);
/ A8 u! J- l6 P$ b$ v# _# Kcircle(x0,y0,50);
4 V: k" b& Z  p. q  f. ifor(i=0;i<16;i++)
0 Y8 ^: D+ p+ U2 l0 w6 f{
  _- \2 y, V  h$ ua=(2*PAI/16)*i; 7 `2 }5 v5 S8 R8 y" @
x=ceil(x0+48*cos(a));
7 s$ C7 K, n8 P% r1 U# z6 Ly=ceil(y0+48*sin(a)*B); - u9 Z, s* {4 `& y: ~# z' h- Q
setcolor(2); line(x0,y0,x,y);} 5 Z9 ?  I/ A- j9 J
setcolor(3);circle(x0,y0,60); 7 @- b; d8 K  X5 ?1 a3 ]* u, |
/* Make 0 time normal size letters */ 0 W8 Q* m- p9 M* c6 j* p4 ~
settextstyle(DEFAULT_FONT,HORIZ_DIR,0);
0 I& h" d% `' k, K7 S8 q; p' J3 `outtextxy(10,170,"press a key");
" `/ E+ Q0 {" f% j2 j( I! L1 C* egetch();
/ C  G0 A, C) E3 j( R5 Hsetfillstyle(HATCH_FILL,YELLOW); % x" m' r/ e- d# \
floodfill(202,100,WHITE);
% q! C8 M$ x9 s4 b. i8 Ngetch(); 4 d8 H9 B  I3 `" d% u5 }. ]8 \5 B
for(k=0;k<=500;k++) & d9 J+ W9 v7 `' V3 C/ W3 T( T
{
& W, @' U8 Z' g1 g3 Psetcolor(3); 5 g9 u  H& X* l5 |6 Y' o
for(i=0;i<=16;i++)
! J! o. J" Q) M* I9 W1 E$ |2 {{   b8 f. ]3 g+ k, S) B
a=(2*PAI/16)*i+(2*PAI/180)*k; 2 B5 J: S8 a. A; v. h- |; i
x=ceil(x0+48*cos(a)); , h' I$ i) [" }1 X. }) L) ?) p
y=ceil(y0+48+sin(a)*B);
& Z) Y  o8 J- E7 V  A- ~3 bsetcolor(2); line(x0,y0,x,y); 5 Y8 y6 U3 f- n8 v+ l# B6 |
} ; D6 G$ _& ~  Q( L% a
for(j=1;j<=50;j++) 9 d# V; B$ a: ]1 t6 l: t
{ 8 t: Z5 P6 m8 I! }+ v
a=(2*PAI/16)*i+(2*PAI/180)*k-1; ) V) c& r2 a! x. E! _
x=ceil(x0+48*cos(a));
8 r: \# o  P6 Q+ P% y+ D' Z  ly=ceil(y0+48*sin(a)*B);
5 C5 X. W) h) t' }  X- jline(x0,y0,x,y);
& I  P5 |7 L  C$ |% H}
9 D  G/ D: G4 {5 p9 f}
9 e+ p5 `4 v! P7 b5 V* Lrestorecrtmode();
' A' ~9 n' H5 w" f} * d2 O/ o8 b. s, g) w7 _( I
============================================================== ' W) W* I/ V- X# u
【程序602 u1 o9 F5 D# r7 R: N4 N2 B/ w" ?
题目:画图,综合例子。
: P& B/ m2 l: ?$ t/ X+ b" ~! S5 \1.程序分析:
3 B* w5 \7 z7 N' A, e2.程序源代码:
5 N9 E% H" \2 c% ~#include "graphics.h" 3 }! f! D! W- Q; @1 g; V) H0 o
#define LEFT 0 ' Q3 y; {0 v6 N  s4 V! F
#define TOP 0 ) [1 G" G% [. ]+ M5 L
#define RIGHT 639
8 u2 w! l" g7 K( h( t& l#define BOTTOM 479 : y! i- @. ~" E/ C
#define LINES 400 6 n. {( M5 h% L+ ~+ A6 Y$ x
#define MAXCOLOR 15 3 r, {% ^" F) F5 w9 ?+ y
main()
/ G- e) H# |( g( ?{ : ~* N0 y% t8 z
int driver,mode,error; , h& p! B+ j0 I8 b% Q4 T, X
int x1,y1;
' ]$ h9 R" f$ X# i1 u8 Z6 ~& h# nint x2,y2; 1 a; }6 I$ T) E  W
int dx1,dy1,dx2,dy2,i=1;
2 r  P- D! g# J, ~( c- k9 \int count=0;
& o1 S8 }4 p) V! K9 kint color=0;   h8 F2 T' T$ ]% u8 V6 s7 Y  j6 O! q
driver=VGA;
+ `' a9 u( K0 Y# t8 m5 m# wmode=VGAHI; % {( G$ H% J; f
initgraph(&driver,&mode,"");
# o+ @5 q  q( t" J# ux1=x2=y1=y2=10;
5 D% d7 G7 b: L5 \7 z+ z( S, cdx1=dy1=2; ; V! r( u3 D1 C
dx2=dy2=3;
  Z3 E5 u- U1 g; @* swhile(!kbhit()) # p, ~' G! Q% r4 J! _
{
4 U6 k, Y$ g6 ~line(x1,y1,x2,y2);
9 c9 t! U2 V3 C. u0 n8 G  yx1+=dx1;y1+=dy1; $ |1 D% G3 B. _+ z5 T
x2+=dx2;y2+dy2; 3 m9 L9 P3 Y; J5 n
if(x1<=LEFT||x1>=RIGHT)
8 m  ?: L1 s- }% b8 N! Adx1=-dx1; , D0 U# Z: C. ^6 R& V5 T
if(y1<=TOP||y1>=BOTTOM)
5 [( G4 p  n& d1 fdy1=-dy1;
2 D7 k2 b! ^/ u4 p8 aif(x2<=LEFT||x2>=RIGHT) 9 I- V5 Q- n1 W, N
dx2=-dx2; * P. X& N1 Q5 Z5 N0 h  T/ C  r
if(y2<=TOP||y2>=BOTTOM)
( j% _6 R  N3 O2 [, z7 ddy2=-dy2; + J' Z% ^1 a0 E% G* _
if(++count>LINES)
5 a$ f  `) Q% J, v  {0 E9 }( v{   b6 _; S2 U; t, T2 p  `
setcolor(color); : o* v: ^1 B% Z' R+ c$ z( N" `
color=(color>=MAXCOLOR)?0:++color; 6 ^$ ]$ e0 d! V  U; J: {/ q
} : w' }( ]% _( N/ f3 z( |
}
$ I8 p' \& Z' f% \+ e/ _closegraph();
+ w% g# U% K# N( J. e1 g}
【程序61
6 J+ Y) V6 @5 C" m' C$ X; H题目:打印出杨辉三角形(要求打印出10行如下图)
4 R+ H( ]* ?5 d; O) Q4 K1.程序分析: , d/ H+ q4 @% l; `
1
  ^- c# F) g" {. U1 1 . L( C; g' d% d$ ~- {" H
1 2 1 ) y" n* e: i. s3 }1 ^% w/ S
1 3 3 1
/ {4 J5 J( a) B, Q0 u, }! G9 J1 4 6 4 1
, m4 l4 h: q9 l/ Q1 5 10 10 5 1 & S. i  \) `. A) a9 {% K
2.程序源代码:
/ ]" x- U& M- p  l! hmain() " t" q3 G3 U+ y2 c( \
{int i,j;
! B* {/ ?' M* C( |int a[10][10]; 4 @  R) p; O$ P" s& d
printf("\n");
8 Q2 S+ h& x3 Y' D* [1 Jfor(i=0;i<10;i++)
' }+ G  \4 A+ T5 R2 \* N: F0 \{a[0]=1; 2 v6 d% Y. O: |7 n  T) F( f
a=1;}
7 U' l. n5 r7 T& tfor(i=2;i<10;i++)
/ `6 P9 Q9 z2 q* y  \9 k' p) ^1 ofor(j=1;j a[j]=a[i-1][j-1]+a[i-1][j];
) s" z1 S, n! u0 h3 z. Qfor(i=0;i<10;i++)
- W. X8 E8 l3 M0 b7 X: e0 x{for(j=0;j<=i;j++) - [; |/ Y6 ~8 Q9 Q& P; v
printf("]",a[j]);
! P; n$ F3 x1 ~, t/ @$ ~! Pprintf("\n"); 6 Y9 u7 `" u, x& a  O5 M
} + ~/ A5 G& p& y7 B
}
# H; w. v5 q' ]; }& H5 E============================================================== , a8 }2 h6 m6 Q$ E
【程序626 v, R5 M$ ]7 x' |
题目:学习putpixel画点。 3 J7 o: {* M4 y$ a
1.程序分析: 0 S' }" W2 h  @! `8 i
2.程序源代码:
2 }0 I) r* f9 ]; g! e9 B3 P#include "stdio.h" / w5 X% X$ `5 |3 y
#include "graphics.h" ! Z3 [7 [" H8 T
main()
( v3 E/ v' d% v/ d( M{ ; y# e# |( r; \# j9 p" e
int i,j,driver=VGA,mode=VGAHI; ; M5 x# M+ w5 K" p
initgraph(&driver,&mode,"");
7 O6 e/ }5 R7 v* q- G# Z, @setbkcolor(YELLOW); 7 h5 }1 j' E& E+ K( m0 Y
for(i=50;i<=230;i+=20) % l. B7 j" x# P7 `
for(j=50;j<=230;j++)
4 A9 d8 o( n; s  }0 i/ Zputpixel(i,j,1); 7 P% |  x4 U# N8 ^  K7 u8 ^
for(j=50;j<=230;j+=20) 4 q6 \, j& F3 y
for(i=50;i<=230;i++)
; X5 V6 x$ P3 D1 vputpixel(i,j,1); 3 s! o; t2 _; r; U  F3 @
} : A/ O) o; T) C% L; T) D" l
============================================================== ) h* Z/ W1 r( T
【程序63
) J! X% a% r" j5 X题目:画椭圆ellipse
- C* Y2 Z& M, t# d1.程序分析:
( g' I4 U- m- X- Z2.程序源代码: 7 ?2 k! w; f$ U# _8 M; p9 U! ]( O0 `
#include "stdio.h"
! L1 p7 T( ~8 r+ j0 d: o#include "graphics.h" % w: k; d, b% G9 k1 J
#include "conio.h"
. O& T3 O2 f6 r1 K5 s5 Vmain()   Q+ |. u0 g) `5 Z( H- l3 V# ^
{ 7 D( e* w9 C( H% J! e- N5 ^' h$ K/ ~
int x=360,y=160,driver=VGA,mode=VGAHI; + i$ T2 G2 i: j1 K, r
int num=20,i; : C0 |: l/ R: p
int top,bottom;
& m. x) k* U' ]  e. p# {: Z  binitgraph(&driver,&mode,"");
' v3 d) D. T+ Btop=y-30;
/ c, e  W3 c; L" y. _bottom=y-30;
. l6 K9 Y8 s  y- ufor(i=0;i{
' ?1 Z3 S+ Y4 Sellipse(250,250,0,360,top,bottom);
& V" x$ l# a; T3 }7 B1 ^top-=5;
( ?/ O$ ]; }; O9 R( \) c6 @  Jbottom+=5;
$ v; ^7 S# E! X4 R9 i}
# {7 _1 {$ {- L" U- v: k+ k/ Mgetch(); ! o& l9 K1 O2 E  `4 j; O0 ~5 R) j
} & J& v* R9 L& g( D) Y
==============================================================
4 P+ U7 c+ ^6 f( a$ c) C【程序64
; f& H* V7 E9 d/ \8 R- K; E& W题目:利用ellipse and rectangle 画图。
$ u& O* U9 g+ [0 |9 X1.程序分析:
. w) J# g5 Z4 `2.程序源代码:   w. Q/ J! G1 I& L  e, C
#include "stdio.h"
+ S# H7 Y4 c3 ^9 G9 y2 j+ ^#include "graphics.h"
, I' }6 d. \6 h7 R8 y+ v6 F3 Y#include "conio.h" ) u9 b& ?" C: B$ i, S
main() % ?% l+ d# z$ x; @
{
' v/ W- j0 o8 Hint driver=VGA,mode=VGAHI;
5 Y2 W# O1 {9 }# P# k8 yint i,num=15,top=50; - Y1 @! e* g5 T
int left=20,right=50; * t" j+ t/ v( S6 b0 A8 N
initgraph(&driver,&mode,""); 4 v1 d4 L* J) H& ^' V; [
for(i=0;i{ 3 q" w% s: E4 ?$ s) I6 ]) _
ellipse(250,250,0,360,right,left); , ^/ [# m6 c# m0 w; \: z
ellipse(250,250,0,360,20,top); ) c9 B* O& }, J& y  D
rectangle(20-2*i,20-2*i,10*(i+2),10*(i+2));
) Y# N, X$ q4 Jright+=5; ( m' e$ M2 h+ k
left+=5; : ~+ [& ~7 S! p8 O9 S3 W
top+=10;
) r& s+ z0 g8 W' f* m8 o" j}
, q6 ~' z. L) H7 e& ngetch();
+ Z( E5 X- X: W# E" X& S4 m9 A} ; |9 v2 j' @, T# g* D9 I
============================================================== 2 G* h5 E3 c5 v% J0 J
【程序65
+ ?7 z3 L, S' e" P题目:一个最优美的图案。 2 R- i! O) h$ n2 {% R
1.程序分析:
, t5 h4 N* C5 b# R& w4 _2.程序源代码: 0 J- E8 Y; K& X& W% u
#include "graphics.h"
7 g( ]: m: ~6 F) R( I( L( K#include "math.h"   n+ g. U3 O7 d
#include "dos.h" 7 F) n( L% L- |. @) v3 r
#include "conio.h" " `- Q6 x6 W) }+ r/ ^- `! R& @) o
#include "stdlib.h"
* q4 G1 p- d: n) v& n2 q#include "stdio.h"
; S8 U) Z( n1 O* a% i4 F, z8 H' o#include "stdarg.h" + F: [5 c1 Y6 O: B. k
#define MAXPTS 15
6 T7 \; V+ e0 U8 `& ~- p#define PI 3.1415926 4 {6 h0 A/ H1 S; C+ A) c
struct PTS { 9 a3 z0 y- @( z* R( l% Q; W
int x,y; ! {* j: }& V/ C! F8 R, `$ E5 u7 s" \
}; * j+ [- A5 X$ X/ W+ x: N
double AspectRatio=0.85;
1 t) b1 Z( ?3 L  P/ M* g- wvoid LineToDemo(void)
+ t! H& }: l5 Z/ l9 g; W{
1 }' o1 C5 u' astruct viewporttype vp; & y4 h0 `, u3 W' r0 |" N
struct PTS points[MAXPTS]; : W+ d' g; }- S4 k) N- [1 Q
int i, j, h, w, xcenter, ycenter;
! }- A4 d# J) a1 D: X& _int radius, angle, step; 9 G0 n" o& r$ t0 Y+ D8 S! m% O1 e
double rads; 9 @, C# ]3 H8 F5 ?" U- f
printf(" MoveTo / LineTo Demonstration" ); ! R& {  b& M) O" p& k/ t! a
getviewsettings( &vp );
' z4 x5 }' d. \) x6 }3 `h = vp.bottom - vp.top;
# j- i6 T) \0 \) I0 _% e; k8 Gw = vp.right - vp.left; # }+ {, O; U$ B$ r- h4 S/ n7 Y
xcenter = w / 2; /* Determine the center of circle */
% ?$ i0 [3 D8 U( `) |ycenter = h / 2; . ^' r, }- t6 N$ ]4 V# Q0 ]( O
radius = (h - 30) / (AspectRatio * 2); * b8 A! C3 W  i0 }( I( V
step = 360 / MAXPTS; /* Determine # of increments */ ! S6 J& l6 l8 Z
angle = 0; /* Begin at zero degrees */
+ L: W2 K, @/ qfor( i=0 ; irads = (double)angle * PI / 180.0; /* Convert angle to radians */ 4 e, l5 T2 \, Y
points.x = xcenter + (int)( cos(rads) * radius );
( H) j9 [& ]" `7 ?" F; t3 ^points.y = ycenter - (int)( sin(rads) * radius * AspectRatio );
1 K4 Q& f7 L; F; _angle += step; /* Move to next increment */
/ ?- @0 I* X4 w4 v& [+ p  n; u9 N}
) ^4 T3 u* b8 mcircle( xcenter, ycenter, radius ); /* Draw bounding circle */ 9 P. H( D0 m" f
for( i=0 ; ifor( j=i ; jmoveto(points.x, points.y); /* Move to beginning of cord */ ! w. @5 h$ H7 q# X( ]+ a
lineto(points[j].x, points[j].y); /* Draw the cord */ & a4 k5 b! X& p% T8 F9 j' x
} } }
- i. y8 |' i: U1 x) K3 jmain() - o' I1 t7 R/ t# m! D
{int driver,mode;
/ ]/ `7 v- s0 L) U5 B. F3 Udriver=CGA;mode=CGAC0;
9 |/ \  N' `- H5 D# Z( iinitgraph(&driver,&mode,"");
9 z/ r# x" N+ Y3 |& w3 msetcolor(3); , N2 a8 n( i) s' |$ E$ E% g
setbkcolor(GREEN); 1 ~! O& g* T/ H" L" v- b6 p
LineToDemo();}
5 l2 y/ V9 b0 P============================================================== # t9 M7 w+ G; ?* b6 J
【程序66
. R$ ~* Y; W. L7 d' ?  T题目:输入3个数a,b,c,按大小顺序输出。 ( t: Z9 o, |0 j, i3 j3 e( d+ Y
1.程序分析:利用指针方法。 6 T& \. r' a( q  Q# u  _
2.程序源代码: + {8 G2 l6 P( x6 D, x  F
/*pointer*/
- ]2 O$ T* o) v9 m2 \2 M0 Cmain()
' C6 k  S( S& C2 m  h& H{
& l$ ?( N% R9 C- |int n1,n2,n3; + L/ \% p1 G( y4 n) R, E4 L
int *pointer1,*pointer2,*pointer3;
1 G0 t  ~" C9 L# Z- V" zprintf("please input 3 number:n1,n2,n3:");
2 Q  a1 m0 _4 F3 B( kscanf("%d,%d,%d",&n1,&n2,&n3); # _# Z5 ^) M$ c# ^- Q/ F
pointer1=&n1; + h- `! V# F! w; E; F8 t8 d
pointer2=&n2;
) _: i1 o$ T% K3 zpointer3=&n3; ) R, h! p' P8 m* v$ O6 m% _
if(n1>n2) swap(pointer1,pointer2); 3 y, ^& n" M' U0 s0 [: c
if(n1>n3) swap(pointer1,pointer3);
  A( {6 {$ b- }0 r) Rif(n2>n3) swap(pointer2,pointer3); ' ^8 k3 A/ p' V
printf("the sorted numbers are:%d,%d,%d\n",n1,n2,n3);
  N/ w* n8 C+ J1 I2 B( {0 Y} % i6 H, h: U  Q$ G( u: ?
swap(p1,p2) ) a/ o8 l9 U* v3 k9 b* Z5 O7 T
int *p1,*p2;
, a& D0 O7 Y3 T/ x& M1 P3 A{int p;
) M* G  P  A4 {p=*p1;*p1=*p2;*p2=p;
9 `/ X% U; t7 Y+ |, q" H} 3 V9 u# y9 R, C8 n& Q" @3 W$ S
============================================================== : n8 o" e; u7 N) C' ], n5 k
【程序67, d3 m# [4 L8 k5 w: A- R
题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
) c2 W- Y4 O5 B1.程序分析:谭浩强的书中答案有问题。 1 z5 L; @6 N( H! H  I9 z' h
2.程序源代码:
: P0 ], \  m7 A* `3 K! S) }main() 2 D% [' O5 s9 ]1 R# N2 m" _
{
& Y" }) k2 Z3 `  r: x1 e0 m5 Aint number[10]; 4 ^0 T& T, R4 O. X( {% B- J% h
input(number);
- p# Y' I  p( {max_min(number);
7 t- O/ |0 V4 ~output(number);
: d& T+ ~0 W% _  V5 ~; r9 C}
5 p  T0 x1 G' d5 Tinput(number) % i; h* r& ~/ d* [2 l8 K  w
int number[10]; : J2 Y7 [  ]6 _0 h; n
{int i;
4 B% W" I" h( Y# X9 V  \4 Nfor(i=0;i<9;i++)
2 ~4 F; C+ S) nscanf("%d,",&number);
1 _9 T; i% C+ _) kscanf("%d",&number[9]); 9 K. P# t7 I) F; u. f
} ( }% S; W* ~/ C
max_min(array) 7 s# R& Z# O3 y: A
int array[10];
% b/ Z- ^- b1 M5 I0 i, t) r+ l* `/ m{int *max,*min,k,l;
( a# I$ _, O( j2 ~int *p,*arr_end; " n; m9 ~* a7 `, }; T
arr_end=array+10; ! u( v  x' S" _. ^' O
max=min=array; & a' x$ Y7 O: P
for(p=array+1;p if(*p>*max) max=p; - E' R1 G: C# {% h6 V$ p* z
else if(*p<*min) min=p;
7 i, X6 k, ~3 N* E5 fk=*max; 2 g7 P& R6 L/ |% ]( O, c
l=*min;
& m8 y) {" a& z1 \+ R& i4 R*p=array[0];array[0]=l;l=*p; : J4 n# U- c, i8 L4 y& ?
*p=array[9];array[9]=k;k=*p; / ~! Y0 d: j2 u+ P# Y
return;
4 J! W# w3 O4 a# x, s" U}
. A, u# f0 T1 V9 }! [output(array) / q9 Y9 B8 H6 U+ e
int array[10]; 8 H2 v: P9 A, N" v* J! K( t$ W
{ int *p;
0 [  i; i# h/ Ofor(p=array;p printf("%d,",*p);
0 w$ u+ i/ w' u" h  Q- A: Fprintf("%d\n",array[9]); 7 ^( ^$ w# n9 }/ Q4 Z% Q, ]
}
& r9 F; o+ y' i============================================================== & u7 C  `+ A, h' t  [. ]3 P) g

$ V' V; y. `+ {  ]* ~) ~# J+ l
分享到:  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, 2024-10-18 19:26 , Processed in 0.060753 second(s), 32 queries , Gzip On.

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

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

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