找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

C语言经典算法50-67

[复制链接]

114

主题

136

帖子

1000

积分

四级会员(40)

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

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

EDA365欢迎您!

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

x
【程序50) A* G! X9 e) [, ~. s
题目:#include 的应用练习 ' U& H* l7 J7 P, D1 f' ]
1.程序分析: % L7 b6 U+ t4 a/ u9 _# ]
2.程序源代码:
: p( q2 N% E- \  \# e2 z8 qtest.h 文件如下: ! b& B' r# b8 k6 r. n
#define LAG >
) }8 G8 {) v! T# Q+ C#define SMA <
* E! m6 u% E+ l& J#define EQ ==
" m; f. G9 x- q& Q6 b: V. n#include "test.h" /*一个新文件50.c,包含test.h*/
; n6 b% v! A  K6 j. Y( C#include "stdio.h" , y) m6 N" ~- s( X  i( T
void main() ( \1 q3 w  j/ S$ E- A
{ int i=10;
# ~( G. n; \- u& s* Sint j=20;
' C0 q8 I, O+ A" f& {$ R; Pif(i LAG j) ; N7 J" f# O- c  d* u1 v
printf("\40: %d larger than %d \n",i,j); $ `& o' G" a/ {4 `
else if(i EQ j)
! y4 x! H! q/ Q8 |4 ^) lprintf("\40: %d equal to %d \n",i,j); ! o& U1 G0 p3 `6 U# G- R
else if(i SMA j)
9 a0 P7 a7 {" R" O% @$ C! vprintf("\40:%d smaller than %d \n",i,j); & T6 m; N+ C- k/ v# b7 l9 Y
else . c. U/ c; e- g* g1 \$ o1 B
printf("\40: No such value.\n");
: O9 `3 L9 A* p" I' b5 V( X} 8 [& p+ f7 V( Y- D
【程序51
& y5 [, M& M( a题目:学习使用按位与 & ( b2 Y# ~. ~; D! {1 g% |
1.程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1
* z1 }7 i4 O+ A) @" H8 p2.程序源代码: - I, U9 v; X4 Q) ]4 W
#include "stdio.h"   Y5 \& [- H) B  z7 w  r
main()
. g8 k' s( ~. N. Z{
4 k; C( d4 h& P5 Z4 Q# vint a,b;
  \& g- g( T9 ?a=077;
( f5 u* `5 Y6 o  Gb=a&3; & g  N# t% }, v" c  _
printf("\40: The a & b(decimal) is %d \n",b);
: ^  v4 w8 n$ }7 s) ~9 W: Kb&=7; ) v, E0 J* s7 ^# @6 ~4 g! z: Z
printf("\40: The a & b(decimal) is %d \n",b);
  f$ Z: b6 a) L: i9 q* _3 S} & L5 o& ]4 l" p, U
============================================================== . }6 R) v; |' N, G& t
【程序52
9 _" t# b* f! L. Y% `) O题目:学习使用按位或 |
! {; e: e2 ~' z6 H8 y1.程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1 , K8 e. K  i8 c" E" T& Q5 E& J; U
2.程序源代码: 1 ?! A/ |' Q9 c) i* A
#include "stdio.h" 4 q$ a5 i: y4 W7 I" z
main()
7 z: X& \) S! j$ W. X{ * J& \. [4 v  Y4 |5 c
int a,b;
- c& e; ?  G* U* w  F: Ja=077;
( |( ^6 F% y  A7 V2 M* db=a|3;
% \7 j/ Z8 U+ j$ Q; s& p& vprintf("\40: The a & b(decimal) is %d \n",b);
1 }) e5 Y$ J6 U* d; u: Yb|=7; $ R* h: q( O$ o1 _* v# j
printf("\40: The a & b(decimal) is %d \n",b);
" P" \" z! h' O' Z+ ^9 V8 s% f} 0 y. u" q( b; N: ~/ u5 R  K
============================================================== 4 u9 U$ h4 ^0 t
【程序53嵌入式信盈达企鹅要妖气呜呜吧久零纪要 $ v* @' [5 [7 |3 g' O) |8 ~/ K" h  Z
题目:学习使用按位异或 ^
/ h1 @# J, |$ Y; n7 p( f1 y; L1 v5 w1.程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0
. o2 R2 I; D; U* ]. J5 r9 n2.程序源代码:
/ k! Z: i# I1 D0 S#include "stdio.h" $ V3 D% x7 Q: V6 R; B- t/ U6 s
main()
# Q$ O0 d* I7 ]- N3 h( H{
2 o# `5 W6 C( h9 Z- m0 u3 [int a,b;
) Z* s" u% p; n0 p, ua=077;
! u* I& y* y% ]) _! z4 Hb=a^3;
$ l+ p, b" J) v/ F) D) ?0 X& Uprintf("\40: The a & b(decimal) is %d \n",b); ' Y% v" [1 Y; J! D
b^=7;
) S2 H6 \7 W5 P# E$ x* C) Uprintf("\40: The a & b(decimal) is %d \n",b);
  i4 j8 Z- [4 S2 u- {} ; V+ r. r/ J* _! z& _
============================================================== 7 F. }3 i- c' F  K- A7 u1 q4 X
【程序54; r8 @2 m. S; I+ Z$ p
题目:取一个整数a从右端开始的47位。 / Q+ m+ L0 N; H9 \& d# p) \
程序分析:可以这样考虑:
' I. H4 z4 y9 f% q/ N9 u(1)先使a右移4位。 ) n0 P  [$ L4 B! z% k7 s/ \! _: |5 B8 c
(2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4)
5 t8 W( b, e: Q8 C' [8 t& z(3)将上面二者进行&运算。 # p) X2 J* W. M7 j" p' h2 N
2.程序源代码:
8 Z/ N  t6 M, z& j$ hmain()
$ A, P. |! C- c- c{
7 |+ o, B6 c% [" u* bunsigned a,b,c,d;
, z2 s' }8 @- Xscanf("%o",&a);
( j4 u' V. D. S: |b=a>>4;
6 w2 H2 v( W0 U' Bc=~(~0<<4);
$ B8 `8 C( k! \% ^! d5 B3 sd=b&c; : E2 X3 ^" l# v# i. y) g
printf("%o\n%o\n",a,d);
% a! B% R) S8 n' l3 [8 b2 t} ! N) m6 U4 k6 f9 ?6 }
==============================================================   E. J3 S4 n- Y
【程序551 g. w) U9 u* P6 \& f' O
题目:学习使用按位取反~) i3 s- I- A+ T/ f. h# o
1.程序分析:~0=1; ~1=0; ; ~5 M: c) t% C" C6 z' C9 W
2.程序源代码:
+ B: P, R8 K; v7 k4 X#include "stdio.h"
2 \! s+ Y& M/ ^1 w1 imain()
9 q* B$ \3 l/ a; p, D{ 7 L( e& n' @+ ^8 c  l# ~
int a,b;
5 }7 Z! `' e. u" y! ua=234;
! L( t% @/ }: r' F; L( Vb=~a; : W5 F# L' a+ H* ~
printf("\40: The a's 1 complement(decimal) is %d \n",b);
. u6 ^* Q3 d: ba=~a;
# B8 C3 u, D6 K- p9 ~5 vprintf("\40: The a's 1 complement(hexidecimal) is %x \n",a);
: v( F, \  f& q5 l7 G}
( y# j5 |0 ~8 Y6 y1 n==============================================================
. p. I' k" B) Y9 j; {5 j% R【程序56% A  H* G: ]" @
题目:画图,学用circle画圆形。 ; a$ l# _( g/ \' v- N; L
1.程序分析: 7 M/ X; G' {; q+ ?8 K5 m( s
2.程序源代码: 1 `6 a8 x8 C( ?2 U' x% p7 P
/*circle*/ * H, N& N" R, b" x4 M  S: u
#include "graphics.h"
1 }+ S5 y/ k# j* u$ b3 t. kmain()
: b4 T# r7 q. ^! n! T: J$ N" l; t{int driver,mode,i;
- w1 L+ E' E  mfloat j=1,k=1; 9 e, w5 c6 Y+ q7 p
driver=VGA;mode=VGAHI; 6 N- ]. [: |6 A
initgraph(&driver,&mode,""); 8 N9 ]4 A" J1 n4 p$ j
setbkcolor(YELLOW); 5 Z5 k$ x  j2 ?4 S* i  w) F
for(i=0;i<=25;i++) $ u' x: U* u1 w
{ ! M0 t! U1 \$ t6 S! d( @
setcolor(8); 2 E. e# O- a, l1 ~
circle(310,250,k); ! W: q# s9 m% m( M& L: R5 e  K: v9 q* R4 a
k=k+j; / k0 ?( C( B8 a( T: O" i
j=j+0.3; # e9 [9 P9 K0 g0 F; |
} 7 A9 I% S5 O+ D  ~' F
}
& @. g9 G5 y. L! z+ x4 {==============================================================
! T: \* o* S, X# m* h) _1 l【程序57* w$ g/ ]& M* {4 f2 f; p
题目:画图,学用line画直线。 ( M* }+ `3 y. S( K& x. S
1.程序分析:
3 ~( y4 w1 [6 _1 G( K& N2.程序源代码: , |( ]( W3 X; {" S4 D! x
#include "graphics.h" . T2 |9 {9 y% c- {$ p
main() ) b7 [  H0 y% ]" ^7 w' b. i
{int driver,mode,i;
0 \) o( g& F( z+ L: Gfloat x0,y0,y1,x1;
1 a' Q) E* _7 Q/ Y$ g* Jfloat j=12,k;
4 B* y2 f9 C! D7 h; }driver=VGA;mode=VGAHI;   Y5 N' _0 E# {: M. n
initgraph(&driver,&mode,""); 1 a, e9 |* Y' X! _
setbkcolor(GREEN); # k% T! U2 Z$ M' S+ C
x0=263;y0=263;y1=275;x1=275;
' a9 z! Z) K$ \for(i=0;i<=18;i++)
: z* J- t6 |0 Z, r{
9 f! `9 n; m+ X( U( C- hsetcolor(5); 3 q3 V7 L) b0 B6 H: e, D
line(x0,y0,x0,y1);
2 `8 R# d- d# t  H4 v" tx0=x0-5;
' b& t2 s1 K) D8 }, j& l# q9 ~5 @y0=y0-5; 2 V% B2 B$ A$ {$ {( a% m$ @
x1=x1+5; + C" [6 \& }  t3 W- f$ [; |0 N
y1=y1+5;
7 j" @+ O5 z8 d6 lj=j+10; . r- g/ P$ ~# b. c, J0 l6 b' P- ?
} 2 @/ ?9 |# s+ H3 v  V. U8 ~% C- ^+ F
x0=263;y1=275;y0=263; - l1 ?/ r* `: R
for(i=0;i<=20;i++)
( `# A: R0 s) L# R1 [4 d, g  t{ & x& @' o+ r. V) P  |" o
setcolor(5); * c7 n8 F- K' h% U) L/ m0 W
line(x0,y0,x0,y1); - t( o0 G, Y! `: u* G3 L
x0=x0+5;
( P! n$ O" l+ fy0=y0+5; 1 c1 K: @$ J) s7 y$ p* s3 k% A
y1=y1-5;
! p% u& m2 S! u6 E$ `# e8 t}
. {  g" t: O5 H2 _/ c7 v% o+ D}
7 |6 l, x2 P) u  C; Y============================================================== $ \0 L# V1 f. t, E; g
【程序58; b2 O: T' X4 A# _
题目:画图,学用rectangle画方形。
8 ~; C9 ?; S; M. U9 }, s" ^1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 # I# p" g, T$ b+ R$ \) B5 d
2.程序源代码:
/ F) y% m' L( a9 v4 F, K#include "graphics.h"
; j; Y: e1 f& p" ^- B* zmain()
; e% I* [2 J% L8 n! P{int x0,y0,y1,x1,driver,mode,i; 4 ?4 ]) @, i8 q  _' [
driver=VGA;mode=VGAHI; 4 K( f% u% h1 x
initgraph(&driver,&mode,"");
6 e; N. H& R) G; J8 Asetbkcolor(YELLOW);
6 g$ A1 B" A# r  \7 P6 p* Ox0=263;y0=263;y1=275;x1=275;
" q% |, Q+ m- ?- X$ e& Gfor(i=0;i<=18;i++) 7 |4 Z7 l2 {6 R+ {6 c
{
2 c" L+ @1 b3 A2 {setcolor(1); % M. i7 L" h5 S5 c; N8 k& E$ Q+ F
rectangle(x0,y0,x1,y1);
' u$ _$ s! C2 X% Zx0=x0-5;
$ l( @2 v9 C" i$ ry0=y0-5;
  e' k# f: H/ M) O* S) q; mx1=x1+5;
9 Q' K) n; Q8 y* Ry1=y1+5;
2 V( m- I- \, l} 6 D! R# R0 l5 E. j' S
settextstyle(DEFAULT_FONT,HORIZ_DIR,2); 1 Z+ Q  g1 _- \/ M7 W# e
outtextxy(150,40,"How beautiful it is!"); * W) U8 M9 L, }3 S( K6 ^
line(130,60,480,60); / f5 `3 j1 l2 E& @$ w
setcolor(2); ; l  o" R) e! n( g! b
circle(269,269,137); 6 u# n' J. T* D- W& J4 V* ?9 L5 h
}
+ N. }$ L8 m3 {  l  J2 Y! W: M& a1 a==============================================================
+ g2 a6 `+ W/ y7 u0 N【程序59
$ B. t. G0 ^; V; S$ |题目:画图,综合例子。
( z7 ?; z+ B3 T4 a1.程序分析:
  ?' j2 d9 ^: A* ]2.程序源代码:
, P* |$ u) K& M# define PAI 3.1415926
  l: }" i. w6 {3 k) p# define B 0.809 3 D% _# a3 k9 p! V* r! u- W
# include "graphics.h"
$ |; o/ C: H4 K, k% u: Z1 _4 i" O#include "math.h" ) T: B$ G5 x' Z# K+ w) R
main() ' Z! g1 o- O/ n( g
{ * s/ {" Y5 V. n8 C  p$ B
int i,j,k,x0,y0,x,y,driver,mode; . I3 y; Y4 ?- s; H) L( G
float a;
4 W; [  B8 }# gdriver=CGA;mode=CGAC0; $ D3 F9 j0 Y- B- a! C) |
initgraph(&driver,&mode,""); " `$ ?3 c( p* x
setcolor(3);
: G" X% d( D8 y5 x2 Asetbkcolor(GREEN); & P9 t" r7 [$ P' I( {1 U0 t* w0 Y
x0=150;y0=100; " l4 O1 |5 \' l% ?5 a& _
circle(x0,y0,10);
4 @5 B" `7 a2 g# W. U" zcircle(x0,y0,20);
: y5 m8 a; ~; P. F% lcircle(x0,y0,50); " W9 z- E0 [3 P$ N2 {
for(i=0;i<16;i++) $ s* `3 E; V' R5 s! N$ L
{ " E/ U8 s6 N0 c( i3 a! {- \
a=(2*PAI/16)*i; / ~; f3 g4 ?8 O; ~; l& V8 I
x=ceil(x0+48*cos(a)); 1 |4 L2 v8 F" J) W. V
y=ceil(y0+48*sin(a)*B); 2 G4 o+ `8 C& S# d. X+ B( i
setcolor(2); line(x0,y0,x,y);} ' i' i3 P/ p- F& |2 b7 I& Z
setcolor(3);circle(x0,y0,60);
8 e( t1 B- w% S1 \2 ~( J  }/* Make 0 time normal size letters */ 6 t; M' \) p; Q. z5 E) s+ ]5 \' u9 E
settextstyle(DEFAULT_FONT,HORIZ_DIR,0);   X7 l$ D/ X7 u( T. t
outtextxy(10,170,"press a key"); & _. b( {/ i5 F3 P
getch();
( x+ o5 ?  ?( |/ n" Dsetfillstyle(HATCH_FILL,YELLOW);
% {; f/ [& V* A# dfloodfill(202,100,WHITE); " z9 ?" ]3 y; P+ `( f) Q3 m
getch();
% M7 x& ~3 T  y8 Jfor(k=0;k<=500;k++)
2 i' T3 z: @# c0 a{
" H! H3 H6 ^  r& K7 ~  gsetcolor(3); 0 f" q) W, x& A" s
for(i=0;i<=16;i++)
# {: ]$ A- t3 B* D  s7 c$ a{
3 ]! `) P5 D6 _a=(2*PAI/16)*i+(2*PAI/180)*k;
$ S) S* a5 s( t4 Yx=ceil(x0+48*cos(a)); $ D+ t3 L( n! S
y=ceil(y0+48+sin(a)*B);
7 p& ]4 C+ Q3 U- Q6 Rsetcolor(2); line(x0,y0,x,y); 8 D/ L5 ]* |1 i
}
3 V5 k% a; [4 b( c" O5 \for(j=1;j<=50;j++)
9 s( H; J  M2 s- n/ X7 ^{ 6 K8 t% ]2 r: z8 |  m* u& h0 D
a=(2*PAI/16)*i+(2*PAI/180)*k-1; 3 Y6 J4 P. f5 m, F  I
x=ceil(x0+48*cos(a));
9 I' n# g% N  l7 _y=ceil(y0+48*sin(a)*B); & M8 m' B1 |) F
line(x0,y0,x,y);
. I3 }, F* Z$ v( p3 y) P2 b5 o( @} : J1 l! r3 @0 p
} 9 D2 f" c1 r; K0 B. P+ Q
restorecrtmode(); 7 b# w# D+ q# I% l3 T5 p; j3 J- \- D
}
0 y- N* c0 N9 v' Q==============================================================
; L- b3 a. ~9 s; |【程序60
4 @7 @# X% r' M题目:画图,综合例子。
, [7 j) Y4 z, M3 z2 |1.程序分析: * I8 x1 w8 J) I4 x# a) p" s) n
2.程序源代码:
$ u. @* k+ t6 i' ?, @. F#include "graphics.h"
0 Z. m8 v3 M8 \) G+ v: H#define LEFT 0
8 c' c- d) k- T# b, H+ Q& c#define TOP 0 # H, s7 l- p  J3 y) x
#define RIGHT 639 4 O5 @" `2 O+ R2 |7 o  X
#define BOTTOM 479 ( F& Z5 w3 I# \. J
#define LINES 400 9 p8 w1 O1 C4 ~* p( p9 ^# H9 Y
#define MAXCOLOR 15 ) E5 Y& u9 {. u9 V) ?
main()
, J/ L/ b% _3 c" ?{
* c, O8 Y* {# e7 k! A; ?5 Q  tint driver,mode,error;
# E3 v+ J( L8 Rint x1,y1; ! C$ j; E" q6 V$ t
int x2,y2; 1 t6 w* ], \/ |( y+ {( |# ?9 x- `$ B
int dx1,dy1,dx2,dy2,i=1; 1 f& y6 k5 `! h$ l9 s" a) z4 Q
int count=0; % N5 d) @& q7 Z% u' W5 B! ^
int color=0;
1 N. e; a8 U% n' \7 k1 Qdriver=VGA;
8 n& J8 V7 `) ^* emode=VGAHI; 9 t% Y) v4 |: X- \/ I
initgraph(&driver,&mode,"");
/ m6 }8 a3 V$ d! Z! T! p' S: sx1=x2=y1=y2=10; ) z% ]; ?* I- {, A6 v
dx1=dy1=2;
  J* c' I) N# T! `5 o3 f2 C* I5 @dx2=dy2=3;
0 d% J4 S0 }! ]! Wwhile(!kbhit())
9 s% |) ?3 ~5 s" X/ w{ 9 Y- O* x0 f1 p. F, n2 W
line(x1,y1,x2,y2);
! _* C6 S# w5 X$ }0 t4 Lx1+=dx1;y1+=dy1;
3 V7 Z, p7 b1 T4 G7 w# V% lx2+=dx2;y2+dy2;
% k& N+ G8 c, Eif(x1<=LEFT||x1>=RIGHT)
  Y' X2 N" S' E: Sdx1=-dx1; : X" B) A4 b6 l9 T( S$ @1 G
if(y1<=TOP||y1>=BOTTOM) 1 R9 q9 A4 C) P  L
dy1=-dy1; 2 B# N* J# S1 X1 @  G/ b: l( n
if(x2<=LEFT||x2>=RIGHT)
4 V/ `% g6 ^, s! \! zdx2=-dx2;
% [4 @5 w2 _1 Vif(y2<=TOP||y2>=BOTTOM)
; Q( j. X; j% H1 b& z( Vdy2=-dy2;
8 j, Q6 B: g: E' yif(++count>LINES) 4 _9 ?+ C* b& i, V2 z3 g9 i0 d
{ 2 S. M' W: q# `
setcolor(color);
$ C# G. R& x- q) U- O& N  `: w* `5 Mcolor=(color>=MAXCOLOR)?0:++color; 3 p% N* H2 h, v) L3 y% S
} 8 F) }7 @, o5 H% I0 P6 a7 v- j
} ! t% F" q5 b' G, F, l# H
closegraph();
; V( ]8 g) B+ r( E}
【程序61
  W5 q) Q3 d3 T题目:打印出杨辉三角形(要求打印出10行如下图) + T# q$ {9 r& W( K- o
1.程序分析: 7 M3 U) A$ N5 D8 y1 \, V, ?7 f; p/ s
1
1 x3 I6 f, r! s1 1
% X* H+ }& \5 s8 g4 x( a3 m! ~1 2 1
" p& ~* O, e9 l0 l, d1 3 3 1
% ]8 A/ {3 n: D" r$ @+ J1 4 6 4 1
* V& x' ^* J# m- k/ O0 ]3 g9 D1 5 10 10 5 1 % Q9 Q$ J3 P3 j3 ~9 ?2 \0 |: C
2.程序源代码:
( B4 `8 J) C+ r0 d8 e/ V% f5 z: ]main() 6 ~8 W* D2 B( X8 C; z/ c) \
{int i,j; 7 x6 c4 Y( p2 N
int a[10][10]; * ^$ c/ P9 X' Q# S
printf("\n");
/ m# ?3 Z8 W0 X# E3 w$ x7 Pfor(i=0;i<10;i++)
2 C% s( y6 I" ?2 p3 T* M{a[0]=1;
8 Q+ {/ b5 A! Ia=1;}
1 t$ X' `/ h1 nfor(i=2;i<10;i++)
/ r# \1 T: e% S/ Q2 ofor(j=1;j a[j]=a[i-1][j-1]+a[i-1][j];
, Z; A) p- A& H# @" _8 v5 q1 [for(i=0;i<10;i++) ; o  ]7 a* }/ {9 j! d
{for(j=0;j<=i;j++)
& p. A+ Z. l+ Y% F7 Vprintf("]",a[j]);
. W! M0 ^* A2 o6 K! ^" Pprintf("\n"); ! v, }/ V# n0 C- t; i% Z
}
! x4 R1 ^% i% E' t}
8 a( k5 i" C7 C5 f==============================================================
7 ]# E1 K$ j7 g" v1 \; d; b【程序62" [5 |( g6 n* ]% |* V% q" @3 W9 @9 ~
题目:学习putpixel画点。
% ]3 {; r& B) \+ S9 f$ \1.程序分析: 7 k- h% x( U# y& \& z
2.程序源代码: 0 E7 d6 m: ^7 `: x( W5 @
#include "stdio.h" ' ~: @8 J; S- S. }" o+ S+ S8 @
#include "graphics.h" # r; ?  Y7 Z: w" S) {
main()
: p! x' B) s( g& J% y{ . L2 g5 |& I9 a' y! y/ o
int i,j,driver=VGA,mode=VGAHI;
% {! ]# W; u$ \& B) Oinitgraph(&driver,&mode,"");
" b* r# r5 E( T( u3 B; ^setbkcolor(YELLOW); , p' ^4 _$ P4 s
for(i=50;i<=230;i+=20)
  S" s- Z! r; u  R: r1 zfor(j=50;j<=230;j++)
8 x) `6 j/ Y+ p7 n2 o% z' u, o$ Bputpixel(i,j,1);
$ e) [" a3 H/ i; a! \6 a2 K6 Ffor(j=50;j<=230;j+=20) ' @& h) b9 D7 [) E
for(i=50;i<=230;i++)
7 Z5 ]$ H# o/ g. l9 |putpixel(i,j,1); " @) f5 ]: Q5 \# E
} / F3 C2 U1 y) _( I- ~2 C" C8 b, q
============================================================== 8 K+ t. P" F* O
【程序63( j! K" g) C2 j' P
题目:画椭圆ellipse
) d4 Y' v( T1 [# W* P* D1.程序分析: + t. ]! c+ H1 {5 H9 `0 ^  H
2.程序源代码:
: k( W+ s) A& n, |- C#include "stdio.h"
) Y8 b- a9 g/ D( N2 @; ]7 I7 P#include "graphics.h" ! W/ J1 ?) Y5 y( ?: n, R7 A) ~9 ^$ U
#include "conio.h"
# [" N& H) f* l7 ?$ C8 w# F0 e4 Amain() 1 @" p7 s* m- |4 p4 {( M3 g: ]
{ % F( Q- n8 P- s1 n# L& G
int x=360,y=160,driver=VGA,mode=VGAHI;
" ~5 _. p; ~, F9 v% m! W9 R( `2 cint num=20,i; % Z. u. ]/ x1 y; b% B
int top,bottom; 4 \8 a. s4 A. U# x' t3 @( ~9 n
initgraph(&driver,&mode,""); & V5 h/ w. _% m7 ~) L* m
top=y-30;
; p5 O3 R+ `+ L' w; g" s4 sbottom=y-30; : ~1 a& L6 `0 ?
for(i=0;i{ 5 S  B  A2 D- h+ O/ i! U& u" M
ellipse(250,250,0,360,top,bottom);
/ p9 C2 q* v4 N/ v  ?' ltop-=5;
7 B% }: D0 j+ i# v2 j0 \bottom+=5; + R: z$ W# |2 [; X/ u4 L
}
& H7 [$ i5 F0 W/ v' @) sgetch(); - h; K4 S3 z$ m, `& n5 K/ B
}
1 |$ K6 ]5 D" j4 ]! v* s( Z6 z9 U0 Y+ P==============================================================
% K# m& N- u  l- v- ]0 U【程序64* u% {$ Y3 o1 v; N. j- M* x
题目:利用ellipse and rectangle 画图。
' Q6 H, Q/ D4 m8 x' B1.程序分析: % n* t) ?- o" Q* _1 ?& M3 z( s0 x
2.程序源代码:
" x/ ~( M: ]4 U#include "stdio.h"
* M0 ?/ ^; E2 j& N' o' a#include "graphics.h"
; @" m% l; Q/ u0 u6 F#include "conio.h"
4 A0 s7 s/ g; z. D. I( }main() - r0 W) a2 Z% F' e
{ 3 E' L! u. h1 c1 `6 u
int driver=VGA,mode=VGAHI;
/ i9 r0 B$ k/ a. Z0 G2 ^int i,num=15,top=50; ! n! |% ~, L; b7 a
int left=20,right=50;
, Q- A; q) U! Q, W5 oinitgraph(&driver,&mode,""); 4 `9 j0 j0 p) k1 ^( O# c
for(i=0;i{ ; F& r1 G$ L: N
ellipse(250,250,0,360,right,left); 8 \7 n1 u- D! L: h( g
ellipse(250,250,0,360,20,top); ; z- U% s( o/ Q9 K2 O- R
rectangle(20-2*i,20-2*i,10*(i+2),10*(i+2)); # v' F4 J3 T$ r2 o( _
right+=5; 0 v6 W, P) D7 ~$ q2 E6 u- a
left+=5;
4 Y, G4 F8 m$ c- jtop+=10; 9 f0 B% I3 K5 U
}
" r+ G" W6 H) Cgetch(); 0 K! P! ~  m) A' G/ x: L
} ' L# K4 X9 T& @0 u  G
============================================================== * h, @$ o$ W, p
【程序65
, W1 T4 C" d5 I; q7 W题目:一个最优美的图案。
) Z: {2 O+ Q1 X6 _; w/ E# Z1.程序分析: 1 {9 l* y- r% a  s+ q4 S
2.程序源代码: : Q2 \) w% H, F6 P* G$ {5 w
#include "graphics.h"
7 {' x8 e- @7 h" v- v! I#include "math.h" ! e7 L2 X/ q% p8 e9 n* o7 p
#include "dos.h"
* X! f, x' {- U- q1 x! G5 Q, q6 M#include "conio.h" . y6 e1 h9 i4 K% |
#include "stdlib.h"
- t6 }! s2 x4 i$ B) U( z! {9 r. ]#include "stdio.h"
0 B  l+ @; O9 v5 s( A$ W1 V#include "stdarg.h"
# U( B/ S% t, {% i7 G' b" Z#define MAXPTS 15
9 q9 X, ~1 Y- W' W8 ?. Q#define PI 3.1415926
  T- W5 G' v7 u% u' }  \; P; a+ ]struct PTS {
( Y( \: u' O% o+ @/ }! o( zint x,y; 6 @3 L, ~& R6 C8 ?4 s
};
( ]  T8 U& {. Q; |3 Sdouble AspectRatio=0.85; 8 R( ~% @) C1 e/ C
void LineToDemo(void) 4 j: ?, q5 x& ?; t, N, X4 l6 M$ n) |& e/ Q
{
* _6 r; G/ R: H; Ostruct viewporttype vp;
" K' |  h& l' Z, x; b! ostruct PTS points[MAXPTS];
' V( H! K, w. B! @) A& r& i% vint i, j, h, w, xcenter, ycenter; + C/ ]& X! O9 c% J! z
int radius, angle, step; . U, @  L: u$ R
double rads;
% k3 M; f5 G+ [; J# }- K  Yprintf(" MoveTo / LineTo Demonstration" );
8 s  J2 \' s" r' j5 {# ]! wgetviewsettings( &vp );
3 |6 Z& E$ [6 D6 fh = vp.bottom - vp.top;
$ t3 P$ V% @8 z4 jw = vp.right - vp.left; 0 |5 P6 l4 E; ?4 |
xcenter = w / 2; /* Determine the center of circle */ * j6 P5 L, c& Y
ycenter = h / 2;
4 _3 i' F# C; `. R* uradius = (h - 30) / (AspectRatio * 2); : Q* a4 R# J5 c' A+ |
step = 360 / MAXPTS; /* Determine # of increments */
+ F, x4 A$ n7 S8 \3 O+ S1 \  kangle = 0; /* Begin at zero degrees */
0 M# J: h0 M5 @for( i=0 ; irads = (double)angle * PI / 180.0; /* Convert angle to radians */
% W: x/ e8 v7 ~1 N" _points.x = xcenter + (int)( cos(rads) * radius ); & }8 _- Z% v. L5 P
points.y = ycenter - (int)( sin(rads) * radius * AspectRatio );
; j, A3 h2 _. M+ A5 R1 Kangle += step; /* Move to next increment */
3 X7 @; r4 U( n% }, k} 8 t+ X. Q: r0 Y, @: A: W( F- r7 a
circle( xcenter, ycenter, radius ); /* Draw bounding circle */
- ]! D; E: _4 c- v" Ufor( i=0 ; ifor( j=i ; jmoveto(points.x, points.y); /* Move to beginning of cord */ 0 w. o. o) }7 E8 i
lineto(points[j].x, points[j].y); /* Draw the cord */ 2 l6 u; q# j/ |  f
} } } + G8 S/ `8 K7 \+ r2 u' H% E
main()   j, J  r2 D; P
{int driver,mode; $ x* l! A$ n+ L( Z5 Z5 ^6 V$ e
driver=CGA;mode=CGAC0;
4 G& I8 B" h# @9 tinitgraph(&driver,&mode,""); 1 T" Q5 u3 R: O2 Q' E
setcolor(3);
. T* g* ?5 l+ T; r/ z2 Q2 Nsetbkcolor(GREEN); * N, q7 Q5 v8 R; {  ^! ?
LineToDemo();} 0 S5 F$ \, h0 f, [, j( \) d; x
==============================================================
0 m7 w1 M9 a# X9 o" R* H【程序66
$ c, e7 ^) X6 t* T( s' h* N题目:输入3个数a,b,c,按大小顺序输出。 1 N/ L9 m- w7 g1 _
1.程序分析:利用指针方法。
1 w: c% R, p$ A2.程序源代码:
7 Q0 v$ y, w# D! P: i' y& C% m/*pointer*/
2 I# m5 d, d5 X" B9 V# n/ q- hmain() 3 A; Y# J& ]7 u& A5 V& G4 v- \8 ~
{ $ w" G/ {4 p0 W8 Q. m
int n1,n2,n3;
- s9 d8 d2 w( y2 G& P7 ^* K0 ]int *pointer1,*pointer2,*pointer3;
! u# L0 P0 l' k7 r- h7 Eprintf("please input 3 number:n1,n2,n3:");
0 @) T4 M. A& y# Xscanf("%d,%d,%d",&n1,&n2,&n3); " b, f8 C) E% o8 X
pointer1=&n1;
* P: U8 g$ d9 o9 a1 vpointer2=&n2; 0 A% i0 }; s" U. T
pointer3=&n3; ; r7 s# Q0 @& f! {
if(n1>n2) swap(pointer1,pointer2); $ R' m; \0 Z" R! q  _
if(n1>n3) swap(pointer1,pointer3);
5 s( m$ W) v9 N) s  Y- ]5 Z2 C- R: }& Uif(n2>n3) swap(pointer2,pointer3); , s& z# H1 B& n9 {
printf("the sorted numbers are:%d,%d,%d\n",n1,n2,n3); $ \& K9 L7 r$ z" E
}
1 m; I3 E4 E' c# R0 m$ s2 M+ m, zswap(p1,p2) 7 k# t# U, @& T
int *p1,*p2; 1 B+ ^8 n7 S9 W/ N) i' M
{int p;
$ w4 x% F% f$ {' R& F( y- Dp=*p1;*p1=*p2;*p2=p;
% q) }! \% g; k  N- ?9 m6 V} - \+ i8 ~& j# I  z9 B( j
============================================================== 0 G! \  u% }/ r# C8 W
【程序67. j3 O- V9 V- J; {4 @" c
题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 % C* I3 w& \, Z. }- M( X
1.程序分析:谭浩强的书中答案有问题。
5 p& ~' Q& n! B" t) J: f: m2.程序源代码:
- _0 F% @9 N& A. Tmain() 9 C& H* f* H8 o6 x5 v( s4 ?3 M
{ 5 ?. N. U& {7 n- H2 ~( t1 }
int number[10];
* g) {: A( D  m/ ]input(number); 2 X+ Y; `; K% y5 j
max_min(number); & b5 q+ B( @- V; [- ?& R
output(number); " `+ E1 T8 r6 U" X1 T: l6 q" L
}
6 `, F2 u7 |: Y% Einput(number) 2 |6 ~, `) g/ J! V  S! A2 ^
int number[10];
- N6 G! U, R. x8 ?. g! ?{int i;
2 Q4 p( f$ |: ^; U7 o! Wfor(i=0;i<9;i++) 7 r& W2 b3 \: H
scanf("%d,",&number); " w& s5 r5 u: \, a
scanf("%d",&number[9]);
6 W+ {" x  j; w- f} 9 [/ K9 U; m9 `3 r8 B' e. a6 i
max_min(array) 4 H- ]8 N2 u4 Y3 i% b4 y1 C( m
int array[10];
) A& j1 ~& c0 @4 P{int *max,*min,k,l; & {, j; ]0 |! E+ k4 I
int *p,*arr_end;
! b- L' u' M" R; s) o- `$ }arr_end=array+10;
) L' r0 a9 w  s4 E7 _1 |0 T: Jmax=min=array;
0 u! V. G# _, T/ {9 [  ^% F9 Gfor(p=array+1;p if(*p>*max) max=p;
# {8 q( v% q0 k6 Celse if(*p<*min) min=p; 0 M6 P; Z; p. a- s2 ]. f
k=*max; ( F  f* q4 Q! y
l=*min;
8 S% D$ N( i$ Y5 ?, G4 L*p=array[0];array[0]=l;l=*p;
- [+ d- _- o% q. D9 e3 x. f3 v( }*p=array[9];array[9]=k;k=*p;
2 c3 s1 ?# a* h+ D# w, Kreturn;
0 V5 t# l/ P3 s4 u: h/ O}
' z0 ?% G4 S2 l) g* b$ s' joutput(array) + Z1 P4 v0 [5 Q! \$ a
int array[10];
& [2 X* \* V. }9 L" h, w{ int *p; : Z1 A- Y4 P- A8 N  b+ x
for(p=array;p printf("%d,",*p);
9 G. ^2 c& L4 Y! oprintf("%d\n",array[9]); 7 L0 m9 h! S& N6 z. l
}
! U6 `) d2 C. V: B; z============================================================== 5 W. ]8 X2 c, }: i# h# R) ]

  [7 L4 K8 G) D* e, s0 Y0 i
分享到:  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 18:03 , Processed in 0.063819 second(s), 32 queries , Gzip On.

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

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

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