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

C语言经典算法50-67

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
【程序50
; H. H% h+ ?+ K* Y  T6 E5 S题目:#include 的应用练习
- C4 k, @1 E7 {! d& T  t/ K1.程序分析:
2 s9 j. V& }7 ?) y2.程序源代码:
# I9 B# P8 l) ttest.h 文件如下: % E2 N  S# Q. D. n+ D5 e
#define LAG > 1 M: J! ?1 N' [2 \' y/ t
#define SMA < , n) j: O7 N) n+ P% h3 H
#define EQ ==
& C3 W" Q& ]& X#include "test.h" /*一个新文件50.c,包含test.h*/
2 b, X' G; t1 y0 B5 F#include "stdio.h"
/ B8 \7 W: [+ x+ Zvoid main()
! A3 w- d& m3 k0 n# U{ int i=10;
- E& M8 C1 k8 n3 o' dint j=20; + H, @, ^6 a/ i$ Z/ [& ^1 D  d3 B
if(i LAG j)
4 i; j' ?1 R) O2 Bprintf("\40: %d larger than %d \n",i,j);
$ G2 ^7 G1 m, r- J  Delse if(i EQ j)
4 Q6 ~7 ~" l# s  V4 jprintf("\40: %d equal to %d \n",i,j);
$ B1 O8 c2 d- g" g6 V' B% Q/ ?else if(i SMA j)
$ `2 I; i8 {6 {printf("\40:%d smaller than %d \n",i,j);
$ K9 v8 R& U, n2 o' I) w! Melse ( f) m- ~+ c% ?4 t# s: z" H
printf("\40: No such value.\n");
1 t7 O# w2 h) T} ; A# E% L3 p' X0 D2 D  F( t
【程序51/ i. z# j# Z9 I; {' m' {( e
题目:学习使用按位与 & 9 l$ N, j! g- Q
1.程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1
* r6 C- z, C$ @+ o2.程序源代码:
! |5 U  E/ s- q# n#include "stdio.h" $ {4 b" ]9 W* ^  T- ~! q3 z8 }$ @
main() 7 C- c4 ~% x% \, k
{ + F3 k7 K7 K7 P
int a,b;
: c. N: H  D4 ?! [' Ba=077;
9 X; `* c3 \- c2 Q. Db=a&3;
6 N& W* Y) f( b$ ^! c; Lprintf("\40: The a & b(decimal) is %d \n",b); ) l5 D/ o: \' W+ E" Z; A
b&=7; * r* n( g% T( u# q! X
printf("\40: The a & b(decimal) is %d \n",b); / ~& m: P2 T( D9 J) V1 f
}
5 X6 x. e' P* W3 |4 c3 j+ _6 G# F& A==============================================================
% K: b+ J6 |/ ~% J  n( h【程序52+ N* Y# I" X2 v. x' a! T
题目:学习使用按位或 |
% K& Q3 _8 L# M8 o1 }1.程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1 , }" `9 u4 C! i5 x
2.程序源代码: ' h. D' Q2 M, e' V! f: L  s5 z1 |' f
#include "stdio.h" # D# Q- L. v! A& a, o; Y3 m
main() $ Y1 R2 k' f+ X$ Y( A
{
: Z/ ?+ i, E" P1 Z4 ~+ r+ o% K9 zint a,b;
6 |+ ?$ H. T0 c7 J6 H% Q, va=077;
$ l. S1 R( Z0 Q- cb=a|3;
& j+ @; e  d# O+ A7 L$ Sprintf("\40: The a & b(decimal) is %d \n",b); - r# \- m$ k  f9 I
b|=7; & W/ o# G& M7 u: z5 h# l0 z$ {
printf("\40: The a & b(decimal) is %d \n",b);
0 N8 a/ X9 W2 O' P, t2 W( O* @1 L9 h}
, V) R+ Q- [  ]7 U============================================================== ' p; ?; r( Z8 U2 i9 T* a
【程序53嵌入式信盈达企鹅要妖气呜呜吧久零纪要 / |5 w* B6 S' K5 X  A
题目:学习使用按位异或 ^
) A8 d9 a5 S7 n5 U8 ~1.程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0
' y$ ^& p; U7 e6 T9 K2.程序源代码: $ i' o& K" t. A: H% o$ N
#include "stdio.h" 4 l( O6 O2 J( h! ?" G2 G# f# _
main() 2 ]  h/ k7 E, K: z. u7 ]# x
{
, b8 L8 B; b- [3 U0 [int a,b;
6 C. S1 L% Q0 h0 i5 wa=077; 7 z* M- {/ r. o  U) t, K
b=a^3;
3 s9 L$ f6 `6 f' L6 a" J, fprintf("\40: The a & b(decimal) is %d \n",b); " Z7 }, t2 N, |% K( F
b^=7;
; k) K2 b" q/ L6 |# x9 y/ cprintf("\40: The a & b(decimal) is %d \n",b);
- V. e$ u: Z' B- A, f  h  S}
6 e8 h6 m2 g9 j. m==============================================================
' ]- M6 p/ a3 y) R$ ]【程序54, L4 s  U/ @+ ^7 T1 [
题目:取一个整数a从右端开始的47位。   h) R' }/ o1 k) N' z; X7 d
程序分析:可以这样考虑: $ |/ R: _& o, h: I3 |- T
(1)先使a右移4位。 . V7 T4 p( R" f: b$ |- M7 z7 |5 Z
(2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4) ! w9 k8 l. C( `0 L4 n1 x. [# W& f
(3)将上面二者进行&运算。
4 X/ {: {5 q$ E3 I2.程序源代码:
& \9 Y& [' b" k' P! z/ Imain() 5 b2 }5 N7 G; p& l: v! s
{
$ |, x' g8 l. O5 S9 @unsigned a,b,c,d; 1 Y& f3 t" y3 y
scanf("%o",&a); ! z) C7 q0 k3 q8 X- @/ E) V
b=a>>4; 6 b. b, }, x+ e/ p( r+ V
c=~(~0<<4);
1 [& F% S# b$ v0 Z* L5 Pd=b&c; ' ^& l! v  w, i& n" {$ f
printf("%o\n%o\n",a,d); 7 n' m" }5 @' b3 ]
}
3 ~9 E% h- z! m$ ^, B==============================================================
/ U1 a" K6 m) o0 J: v: \【程序55
6 ~: }1 j+ h3 n/ i题目:学习使用按位取反~
0 c/ q( Y5 U7 O. @3 m: \1.程序分析:~0=1; ~1=0; 2 J3 H+ s' Q& ~) C' _. k
2.程序源代码: 8 A2 A# h+ f8 C8 e5 O' C& I- v
#include "stdio.h" 0 T  v4 ~- D% E  Y* s/ f
main()
; n) z; c. H& C( G{
5 x! w+ K. l& J6 D& X% R* U3 _8 ^int a,b;
+ A& Z; {$ B% A( P6 }a=234; ( a& k  m$ U( ?0 ~: E. x
b=~a;
5 T) p. Q; v: z9 P5 ^) _8 zprintf("\40: The a's 1 complement(decimal) is %d \n",b);
5 L" K9 y0 t7 D  Fa=~a; ) T4 S7 X& h; f2 U% y
printf("\40: The a's 1 complement(hexidecimal) is %x \n",a); 9 ]/ e8 j0 B/ d% l' O5 D
} ! B. j3 r2 V# C* X
============================================================== ; Y# X. B8 `9 s8 b8 ]
【程序56
) _7 c0 k5 W) I8 d- h+ E题目:画图,学用circle画圆形。
- r5 B  z0 k6 ?! F; E1 {# F1.程序分析:
4 C- V( f8 N2 N' s2.程序源代码: / q# }4 [" ?+ t; Y
/*circle*/ 4 \- Y. r9 U4 r- b% o1 o% q6 s
#include "graphics.h"
1 X: N+ ]7 U6 w- vmain()
# h: l5 g4 a% B; J$ g, {9 D% O( O{int driver,mode,i;
0 H1 I& y0 H- G0 v( Cfloat j=1,k=1;
( J3 l) `' J6 vdriver=VGA;mode=VGAHI;
8 S, U5 x, Y: H# s9 Oinitgraph(&driver,&mode,""); 4 Y$ X) ]7 z. d
setbkcolor(YELLOW);
* ^% k6 I  M5 S. `0 A/ rfor(i=0;i<=25;i++)
; o5 M! q& A8 r- c# s+ O{ 9 z3 @$ H  x9 i8 n4 D( Y
setcolor(8); 7 w6 ]7 k% |: h( s
circle(310,250,k);
5 `) Z1 u: X) O: Bk=k+j; ) }- s6 L7 V7 A
j=j+0.3; * d! q$ y* }" q5 [$ s: k
} . C8 h6 x4 {% k) y
}
3 `/ b$ X9 Z. ~" |==============================================================
# x. u: ~. X8 p* p+ |: |, p【程序57( _7 r  F! a, r" l+ h7 N0 D
题目:画图,学用line画直线。
0 X$ q; M& }0 j5 g1.程序分析:
4 F- @. F4 l1 J$ V3 H8 y& I0 f1 r  P2.程序源代码:
3 x0 i6 }4 S( l- _#include "graphics.h" % m: X& ]9 ]- _% v; l
main()
  }( e9 Q7 A$ @5 k' a( E0 O8 r{int driver,mode,i; ; b" y; M3 X+ Y7 T" o
float x0,y0,y1,x1; % \8 v, {9 x- [" q  X4 _! m
float j=12,k; " J3 y$ H, v; H7 E5 {
driver=VGA;mode=VGAHI;
2 T* k' I  v- xinitgraph(&driver,&mode,""); 0 s8 T) b* c2 R# @; `8 j4 }: \
setbkcolor(GREEN); ' v" C! @: e4 S. D( }. D' U
x0=263;y0=263;y1=275;x1=275; / q: m" Q5 G5 |; X6 `2 [4 @/ f
for(i=0;i<=18;i++) ' k$ j; E2 r  I1 B' |* `9 v
{   D( p1 h0 O1 {' n  X$ j& ~* ?" c( O
setcolor(5); + U) V0 C: y+ [, i+ K
line(x0,y0,x0,y1);
  I, j* j4 b; s* a1 {' ]7 c" ex0=x0-5; , J1 `4 {0 C0 _& \0 `$ f& R$ S! f
y0=y0-5; ; v  R0 B. X% B% `6 T
x1=x1+5; ) S, E# l7 z/ e; Z
y1=y1+5; & A4 D; ^7 x" l" S1 C/ M9 t
j=j+10;
4 x4 r3 Q5 a7 u8 ]: D! p4 J} # N) a! H9 [" t+ W; _
x0=263;y1=275;y0=263;
' |: r5 s) _. P9 y+ I' w; Y3 _( cfor(i=0;i<=20;i++) & S1 T; D4 p0 n6 }; d" X; U% D# Q
{
7 @0 T! p, z  i3 l5 Lsetcolor(5); 4 J3 S4 o. m$ {2 w$ ~
line(x0,y0,x0,y1); ; p! i" M! p2 j8 I6 r, [: q- ]8 C/ }
x0=x0+5; 3 R+ w  G7 d8 Z9 W' u3 e4 C
y0=y0+5; , z9 \6 K2 P0 C- O
y1=y1-5;
) ~# A; n- P5 N1 t! W} 9 ^& D+ K& C$ H
}
: G1 W2 j) H3 [============================================================== ' ?# n  _( H8 n) Q$ L4 E; l5 C& u. a
【程序58
! F4 S: w" |0 @. u* ^4 D/ q题目:画图,学用rectangle画方形。
: f  ?/ @1 n2 p( ^; m4 A1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
1 p9 ^! J& ~9 q2.程序源代码:
2 K3 I) _+ @* d1 v#include "graphics.h"
4 E( s+ a$ Q/ d- N( R2 _main() / h1 G+ ?9 r. G$ O
{int x0,y0,y1,x1,driver,mode,i; ! I( }$ A5 F. m. a
driver=VGA;mode=VGAHI; : S. f& \3 n6 {: n/ e" u/ S
initgraph(&driver,&mode,""); ) ]7 i, K: a; ^  A  ^) }2 n- C
setbkcolor(YELLOW);
  [3 W* }: g" X1 ]. Y6 [x0=263;y0=263;y1=275;x1=275; ; r  C* Z' |3 N! t- b. r
for(i=0;i<=18;i++)
( O' F1 M; }6 s{
# d  M" r' P% ]7 W0 z+ Usetcolor(1);
; }# R8 M: Y0 g' t! ^4 h4 f# Urectangle(x0,y0,x1,y1);
* o6 \! M; F$ X( H* t( [$ @x0=x0-5;
6 T0 z9 ?# A: z6 x# ^y0=y0-5; 3 w& G, K2 D& n
x1=x1+5; # h+ z4 l- D, c+ ]0 V: R1 z
y1=y1+5;
. _0 J4 S4 Y8 j- d} : o) h/ D7 ~$ X
settextstyle(DEFAULT_FONT,HORIZ_DIR,2);
" d- m# Z# `8 K1 B3 Douttextxy(150,40,"How beautiful it is!");
) a5 U1 F! L' A. I% zline(130,60,480,60); 1 _1 U+ n  i  {& O/ i
setcolor(2);
- I- Y+ J% S: _1 F8 fcircle(269,269,137);
% j( `8 ~$ J* s: j/ S+ V+ d) l( F# ^} & X' \/ H1 N  C" m% c) S$ y
============================================================== 3 _! R/ U+ \4 Z* @& N
【程序59
2 ?- n! a8 P  `/ a题目:画图,综合例子。
" X2 I' j; }2 H( ?1.程序分析: $ e9 {" d2 \  d6 h: D- F
2.程序源代码:
" ?' ]7 h/ d/ B* }* h5 \* \: M# define PAI 3.1415926
. [5 h8 J% E+ e; p" G9 d' R' \" ?# define B 0.809 0 [4 f, @' q4 P
# include "graphics.h"
: J$ ^: x: f2 h6 Q' ]3 I& v#include "math.h" ' Q1 q5 k7 F% u. [6 s4 f  X
main()
* h+ i8 H3 \6 W! o8 G{ 1 J9 }. \3 B( |3 t
int i,j,k,x0,y0,x,y,driver,mode;
: u; T/ M% v( Z6 B3 D; Efloat a;
# @# I* j$ H, J* Ldriver=CGA;mode=CGAC0;
: ]; {( J. t5 h# z. s$ vinitgraph(&driver,&mode,""); * T8 _+ t# u0 D5 S- z
setcolor(3);
" f1 B& r) o* n& m5 u+ _& A* osetbkcolor(GREEN);
0 N& x$ o6 S0 k4 l6 ex0=150;y0=100; 4 E- _/ K  b$ E- Y7 M
circle(x0,y0,10);
( ]$ T  U5 q9 L$ F  Rcircle(x0,y0,20);
3 E; ^9 y" Y! {circle(x0,y0,50); ) n( L' y# Q$ [; k3 C5 V
for(i=0;i<16;i++)
  f) d$ }7 T% w{
2 `7 n* y. }6 ]1 n) [) Da=(2*PAI/16)*i; 5 S2 X1 v' R6 y& `- w1 D0 N& K+ r8 Q
x=ceil(x0+48*cos(a)); * E  p( a# \" \; l" S% m
y=ceil(y0+48*sin(a)*B);
$ M- M; L$ }7 b6 `+ z6 isetcolor(2); line(x0,y0,x,y);}
) `; r! a: Z/ H2 jsetcolor(3);circle(x0,y0,60);
4 v, f# [+ e9 |0 t. l9 P/* Make 0 time normal size letters */ ' S8 y- F8 b( v6 |5 y3 S& Y) _
settextstyle(DEFAULT_FONT,HORIZ_DIR,0); $ I& P* Q& w$ R+ A; c3 i( t
outtextxy(10,170,"press a key"); " q" r' A8 T& m" A/ S# r, s& J  u6 J
getch(); 2 i! M* T& ?* v3 t
setfillstyle(HATCH_FILL,YELLOW); 7 v+ ~5 f( f, p1 s, K8 O
floodfill(202,100,WHITE);
4 S3 K5 ]7 g, T; Y; mgetch();   d9 _& `' b0 s2 w& b
for(k=0;k<=500;k++)
( |# ?: V+ k- t+ D{
% V4 \6 S& Z1 t$ T5 Fsetcolor(3);
; @0 M! e) D) I( Efor(i=0;i<=16;i++)
) {" E! [! q- Q3 K, P{
( a! F1 Z3 C2 B$ W3 ^3 A0 g. B: j( Ha=(2*PAI/16)*i+(2*PAI/180)*k; 7 Q9 o5 q. E% N7 H7 p/ y* N8 S( S
x=ceil(x0+48*cos(a));
1 N, i! ^2 s! K8 A1 e- Z$ B" Oy=ceil(y0+48+sin(a)*B);
7 y! |+ C) z) n0 f7 `setcolor(2); line(x0,y0,x,y); ; b/ f0 P3 p) D* z& h% C+ [
}
& J; p" w; N( W, Ffor(j=1;j<=50;j++) 2 W' u4 E; T% F" v; f# i* u, C
{
4 ~1 T# [  @' y( n6 j* Q3 _a=(2*PAI/16)*i+(2*PAI/180)*k-1;
2 H& k7 l* y5 Q, u7 a1 p- r! ^x=ceil(x0+48*cos(a)); ; I- b$ y+ L8 z; F
y=ceil(y0+48*sin(a)*B); $ s. P/ R4 i& D" x7 f, j3 W
line(x0,y0,x,y);
! B8 n+ L2 b: H) r* X! J& p1 ^}
$ O% f5 W8 b/ ]9 T1 Z- D5 o}
+ X( ?# v0 P" O3 erestorecrtmode();
' p, e6 W/ `" }- I}
' d3 j6 }' i; S' f  z0 J+ V1 W==============================================================
: x% ], H' y) E; D( ^! w( \【程序60- {* t# B3 F& \7 ]. O0 O! W# A
题目:画图,综合例子。 - v# a0 {4 P/ @
1.程序分析: . H, Z7 ?  V+ |) I* |* ]# S  L
2.程序源代码:
* \, B! d; E) y7 \7 K/ d0 p#include "graphics.h"
* T- ~, V2 `! p* [# b2 y#define LEFT 0
5 I9 d& f2 e2 }1 }6 l, x" h5 }4 c#define TOP 0 ( ]; N: M; P$ D- @7 ?1 _/ s7 ~+ \+ ^
#define RIGHT 639
  G- T# ?5 M: \& |9 P#define BOTTOM 479
/ m( R4 {+ I  w. L: ~. H#define LINES 400 8 {; d* u. K* c5 o) R& `- W
#define MAXCOLOR 15   v+ g. D0 N& ]5 W: I
main()
3 ~1 v; F% U' ^/ `( K' J{
# E) J* a6 N' s7 U7 [int driver,mode,error; 1 }- c& {0 w0 Q( U
int x1,y1; $ U+ G# K+ [+ Z; {- D$ D1 U/ a
int x2,y2; & R( v# \* o2 k1 p7 {/ ~
int dx1,dy1,dx2,dy2,i=1; 5 ]: ~% G% J, }9 o  O8 x% T& r
int count=0;
1 |; b2 m, x; Cint color=0;
8 x& [) l. n$ T5 d" zdriver=VGA;
; u; j! B9 {7 Q+ `mode=VGAHI; 7 i# Q9 T# E3 b% u1 O% A0 S+ m
initgraph(&driver,&mode,""); ' P( _7 c' _+ J4 Y4 R
x1=x2=y1=y2=10; # R1 D; [8 O, H/ K- V' `
dx1=dy1=2;
5 k, P4 e' d4 W: [- P, h% a) Ldx2=dy2=3;
* _. Z& Z! I, z/ I0 u/ gwhile(!kbhit())
/ z# z9 q0 m) Z5 }, k- W6 y7 z{ ' y5 C1 ?7 G+ e
line(x1,y1,x2,y2); - t$ G! F4 G& D& }& s
x1+=dx1;y1+=dy1;
; Z, j2 ?; p4 ]. [) Q; Kx2+=dx2;y2+dy2; 1 ^/ o0 Y: L6 x  |& u/ B
if(x1<=LEFT||x1>=RIGHT)
5 m  p$ M+ K: p' S+ ?; @dx1=-dx1; , j  k8 |7 g) E1 V3 \: T- b
if(y1<=TOP||y1>=BOTTOM) " P8 O7 h3 E, l3 I6 ]
dy1=-dy1;
; V) V& }0 L8 ?0 ?# pif(x2<=LEFT||x2>=RIGHT)
- S& Z* o) g1 b7 E; P/ q5 P2 E( ]dx2=-dx2; 5 I( k% Q& d& g! t
if(y2<=TOP||y2>=BOTTOM) 4 t# H" q+ O9 V3 X, M
dy2=-dy2;
7 O8 A' Z9 s+ F/ P( w$ bif(++count>LINES) $ H% s' X, ~4 B; L! P9 X
{
/ k( H6 V) z3 fsetcolor(color);
! n" S- V2 X% J, D' `0 t& d% `color=(color>=MAXCOLOR)?0:++color; 2 a# r: L. S8 O
} - q$ `+ L  a, G* y) l7 l/ {+ }
}
: _4 \8 g$ i' K0 k, I& \closegraph();
4 i* q& e$ Z% e, f  W' V& v}
【程序61- N: R( v1 H5 b5 H7 G: m% o
题目:打印出杨辉三角形(要求打印出10行如下图) 0 U/ }6 }) e) K. \
1.程序分析:
8 I' E# z. @* w' Q. z+ M1 $ x7 `- u$ p# k! A( G8 {
1 1
1 L8 P- o0 e" ]1 2 1
$ A% S  k9 S% m7 O1 w( B6 j1 3 3 1
' d1 E# D$ Y+ Z; p) b& V- D& i1 4 6 4 1 8 n/ C$ C- Z) K  q
1 5 10 10 5 1 ) k1 _$ O% W# m" l8 P3 w$ H; G: M+ o, S
2.程序源代码:
, ?/ a: _7 r9 cmain()
: n: k% I% \8 n# V{int i,j;
  o  t7 |" t/ E! Yint a[10][10];
8 Q% v6 f% P( C1 l/ H7 t: Gprintf("\n");
# h) c& M$ \- V) c. {; \' L6 }for(i=0;i<10;i++)
; x( p( u  g2 D; t3 |, t  I{a[0]=1; * w2 r3 e+ N$ j7 Z
a=1;} 5 g6 J5 W$ H$ D; p: m1 A( x
for(i=2;i<10;i++) . V& a# l* J2 x( n1 q. t# Q4 c/ v$ T
for(j=1;j a[j]=a[i-1][j-1]+a[i-1][j];
/ n4 k2 B& }' q5 d# f- kfor(i=0;i<10;i++) 5 d: p' z* n$ E% M- d. X, P
{for(j=0;j<=i;j++)
6 T$ L/ \# m8 P' l3 {printf("]",a[j]);
8 W. k0 c/ i# X7 W) ]" c1 ^printf("\n"); - w! [0 A/ \( V$ @
} 8 S, k6 U# v& c- G3 Y
} + ^6 x. {& g1 F; I1 q' W% @
==============================================================
. }( A+ F- j- j$ S+ N- N2 ^【程序626 N& L/ @3 A- |. ]: L3 ~
题目:学习putpixel画点。 ! y$ `; L. u5 _: ~
1.程序分析:
. e; |! Z) i  s1 B$ E8 Q- h( L% `7 x2.程序源代码:
9 \5 q  F; w! y#include "stdio.h" . M  u9 n' D- \" ]
#include "graphics.h" 7 H, S! V% ~- q) \! l6 |3 u
main() ) P3 s0 [$ N' _1 U+ j
{ & W& x: ?, E$ v' C, I
int i,j,driver=VGA,mode=VGAHI; ' B9 r- g! g& U4 i8 T
initgraph(&driver,&mode,"");
+ C0 J5 q/ y/ X6 Rsetbkcolor(YELLOW);
6 P% k' x( V/ I% V. p4 h* h, qfor(i=50;i<=230;i+=20)
1 }% _1 c- h) z- I# ^7 @, l& efor(j=50;j<=230;j++) 2 G/ Z7 \% X, J3 d/ y% D. y
putpixel(i,j,1);
. W' E) K" z( e/ F1 {for(j=50;j<=230;j+=20) % e7 h0 ^2 D6 ]
for(i=50;i<=230;i++) ! x; G+ c* ]7 h& z4 E) T
putpixel(i,j,1); ! d! B+ x$ t: N( Z  q, D
} & {% b0 I" u3 M- P. j) A
============================================================== % `" b$ o% t6 F1 n
【程序63+ H( |" q9 h/ {
题目:画椭圆ellipse . A, L& f: R. V2 g, k# s
1.程序分析:
# ^0 w: L5 [! l' t6 u. e! Y2.程序源代码: 9 Z5 L# `4 V5 Y$ k% Z% J
#include "stdio.h"
6 ~2 q0 ?4 [. ~" x; ~* i4 r#include "graphics.h"
* }  x: H# [6 S; g! {5 p0 P) k#include "conio.h"
4 w' b" _0 l) V8 Z+ v. h3 S% wmain() 6 x+ f6 f4 X6 Y( p
{
$ t( \) Q+ ?+ ?6 fint x=360,y=160,driver=VGA,mode=VGAHI; ; q3 s5 W) ^3 X: [
int num=20,i;
1 z9 T7 \. q  m. _! ~3 Sint top,bottom;
! {# m" O( c! M# v* @2 G" V0 r0 Finitgraph(&driver,&mode,""); % U) f+ i4 R. b2 v& w( o2 O
top=y-30;
: u$ I* c, N7 U% n& J  Qbottom=y-30;
! Q$ d3 g+ }: a. Y; Cfor(i=0;i{ 8 L: \/ x6 R: U( C6 f
ellipse(250,250,0,360,top,bottom);
9 ]/ O7 l( X2 M2 y9 p( vtop-=5; 4 l2 U* }1 b6 t! G* g
bottom+=5; ! [% \, r% J' a6 Y' F: H+ Y; [
}
' H$ u6 S: D, m! [) o+ o- R3 Hgetch();
! Q3 ?6 Y& c/ ]! N% ~} ; C( J2 S/ L0 x9 }" f
============================================================== 3 ?2 S/ O# a0 f5 M9 q# }
【程序64
8 J2 O' j1 P. O4 Y1 z题目:利用ellipse and rectangle 画图。 ! }- t6 f8 b, @# ?/ m. G& v3 g; t
1.程序分析: 6 m, d, k. o! V  w% I! m: q8 s# x5 h
2.程序源代码: 7 X  O9 j" W  N( H
#include "stdio.h"
. x  P, ^! u4 Q0 q#include "graphics.h"
% u) y$ z+ b9 L, t2 Y#include "conio.h" . _6 r7 j7 H4 v: @& O2 o
main()
) P' M5 W5 Z$ a( T! }0 R) w{ / F# ^2 y! t+ S
int driver=VGA,mode=VGAHI; # l% g! g' A- a3 p4 L0 z8 {* \" V/ I
int i,num=15,top=50;
- s& {" U- y4 B% o$ tint left=20,right=50; : l- G/ n6 Y1 Z+ G/ P
initgraph(&driver,&mode,""); 3 O4 v8 Z* K: u
for(i=0;i{ ; Z2 ?0 c* ^$ ?% F' _4 h
ellipse(250,250,0,360,right,left); 7 `% J  i; k7 W6 `
ellipse(250,250,0,360,20,top); 4 R" A/ w* @; b9 m  z
rectangle(20-2*i,20-2*i,10*(i+2),10*(i+2)); ) U4 \9 ]  ^+ ~, N$ p
right+=5; $ q: _4 t$ Z4 B9 F9 E8 X
left+=5; / R) P, N2 J' s; d
top+=10;
; N. h3 L8 z: h' L! m}
: O. E# f/ ~5 t) |' m2 Z- t, I0 dgetch(); 8 @7 e5 }0 F! o
}
# D  j( ^/ o: T7 O; _/ n==============================================================
# Q3 k& A$ ?& \$ C- i【程序652 G0 Y, _# I3 o0 h0 P
题目:一个最优美的图案。
# z8 |7 m/ r1 d8 m2 J6 g, u1.程序分析: 2 [/ @: ^$ x: P- {3 z
2.程序源代码: : Y" V" r% p. V2 H! T$ A; e& @$ M/ j
#include "graphics.h" $ F* G+ L8 p; `3 F  }
#include "math.h" / v% z% G- e( e9 F& [+ Q
#include "dos.h"
8 ]6 T% U+ I- C" n  F#include "conio.h"
, p5 X3 y5 Q& U4 w+ ^$ \" ~) u#include "stdlib.h" ; B7 C3 C. o! H# t
#include "stdio.h"
" h$ y( \2 I& [# D* q; H" l$ a7 X: S- N#include "stdarg.h" + n# `7 l( j- m2 h% z. S
#define MAXPTS 15 4 d' w: h) |/ m$ l/ p
#define PI 3.1415926
$ }+ P+ f% r$ D: b& p8 x( U" Cstruct PTS { - @5 u; X( i6 ~  x7 ?  Z# B2 h7 @
int x,y;
* O. w- [+ B! L8 {}; , ?6 o% E/ b, m, z- L6 F) n4 D
double AspectRatio=0.85;
% K: |" ~, s9 V# L  ?void LineToDemo(void) % T8 h4 `2 T7 Y% R! H( B3 O8 a
{
5 T8 z8 ^4 d+ @1 @2 Q4 N8 xstruct viewporttype vp; 3 F) C. d. A1 ^  N
struct PTS points[MAXPTS]; " s( R  ^3 m, l0 I
int i, j, h, w, xcenter, ycenter;
  A4 q8 G% h/ o) o6 d1 jint radius, angle, step;
9 }  b4 N5 J  }) o' r' B$ j4 E8 Pdouble rads;
# H4 }, y6 }5 d) Iprintf(" MoveTo / LineTo Demonstration" ); 3 k0 d( F8 i, l0 x
getviewsettings( &vp );
- t" ?( @. q( }h = vp.bottom - vp.top;
; l5 b6 r- t2 j5 W6 B# kw = vp.right - vp.left; 5 U* O" ^3 ?# g" `4 c
xcenter = w / 2; /* Determine the center of circle */ 0 Z+ A4 M; |% |
ycenter = h / 2;
0 H' k, t* I( Y: H  _radius = (h - 30) / (AspectRatio * 2); % X  P/ k( D4 x, g6 P
step = 360 / MAXPTS; /* Determine # of increments */ " b6 v9 n, R% z  }, P7 `/ k
angle = 0; /* Begin at zero degrees */ # C7 `* R# Z( g1 U% ~2 l
for( i=0 ; irads = (double)angle * PI / 180.0; /* Convert angle to radians */ - U1 U% T1 p0 e4 P
points.x = xcenter + (int)( cos(rads) * radius ); " O0 W8 _: o; s' V/ y  y' t6 X
points.y = ycenter - (int)( sin(rads) * radius * AspectRatio ); " y. D0 \- N  X
angle += step; /* Move to next increment */ - b* G* O  k' R# b; l5 m2 u
} 2 i# b4 Z: m( `$ f" y# p/ j
circle( xcenter, ycenter, radius ); /* Draw bounding circle */
2 e8 o" d0 C& b- V: }for( i=0 ; ifor( j=i ; jmoveto(points.x, points.y); /* Move to beginning of cord */
" j/ n& _, Z/ n% `  a4 Flineto(points[j].x, points[j].y); /* Draw the cord */ ) b9 U. I. R( b) j8 a9 |# V
} } } " Z8 a. |( Y5 d9 C9 A& J' L+ M4 {
main()
0 _. c: o& U1 \" h  `. b( w: N0 s{int driver,mode; 1 n6 g4 X! |/ Y- j# U# n
driver=CGA;mode=CGAC0;
; I6 \) J7 Z; l/ h7 Binitgraph(&driver,&mode,""); 6 o! J2 G, C. \7 ^0 Q/ _
setcolor(3);
/ g) ~* M6 [( t, u6 Tsetbkcolor(GREEN);
; b( Z" P0 {8 L1 Q1 LLineToDemo();}
- Z2 f" Q! v5 D! i' J8 S==============================================================
  W/ y& Z) c0 A+ m3 r, m" z) z$ j【程序66
: b4 d0 N; F: Y题目:输入3个数a,b,c,按大小顺序输出。 8 C4 r3 g3 m1 N9 t0 r% u6 b/ H
1.程序分析:利用指针方法。 6 [$ T7 N3 ?3 h7 D. ]
2.程序源代码:
$ S7 }# _+ x8 O! s/*pointer*/ $ _0 H# z+ O2 q: H% O; T$ d
main() % ^% y0 }! M: ~* ]7 _4 X& o
{
/ v& e: o$ ^9 Q; ?+ cint n1,n2,n3; ( v% `) V6 L5 S. ~- k5 V
int *pointer1,*pointer2,*pointer3; 2 a  @  @! n- U* F  r/ z2 B7 t( [
printf("please input 3 number:n1,n2,n3:"); ) T6 S" ~# L* \. n- j
scanf("%d,%d,%d",&n1,&n2,&n3);
& V. }: B8 Y  X% ?( d  x# C1 h9 dpointer1=&n1; * E" ~$ g* U1 A+ f; Q7 S
pointer2=&n2;
& t' Q: ~# j% [' ~7 z7 r9 O& [2 L/ f4 kpointer3=&n3;
& z- }$ B+ A' \+ zif(n1>n2) swap(pointer1,pointer2); , {5 W. U3 k; P" [6 ?0 N0 A
if(n1>n3) swap(pointer1,pointer3);
4 X) ^6 Y! ]  S# ]3 H% x. Y" pif(n2>n3) swap(pointer2,pointer3);
% }6 L& b! e/ }/ t+ rprintf("the sorted numbers are:%d,%d,%d\n",n1,n2,n3);
8 U7 F7 ?9 V5 y2 T' h3 H0 }}
6 j4 }7 r0 \5 h( _swap(p1,p2) 4 K8 K( r" x% l$ f9 W  y' N
int *p1,*p2;
5 h. ^; j9 `5 w% `! u( L/ S{int p; 1 f, D3 b0 ]) g' z0 v
p=*p1;*p1=*p2;*p2=p;
! }* L: Z4 N5 h4 O+ g' |0 X  Q. h} ' X0 ~/ l, I$ l# X- }8 l
============================================================== : |% Y; ]' }8 S7 L8 a
【程序67
: V& `+ o+ M' B/ B6 \7 E  N题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
! X$ l+ f% j4 T0 I" N* i1.程序分析:谭浩强的书中答案有问题。 $ c- S8 k# B" c5 J  M
2.程序源代码: ) n% o9 _: ^5 o4 a+ S# t( l
main()
: ]* I& b) ]8 h9 j{ + i$ q4 F/ J' B/ n
int number[10];
8 [+ C! x7 s1 q' }0 hinput(number); ; F! H" u, B* v) n/ A% ^, }4 A# S
max_min(number);
/ H7 @. g# v+ l8 xoutput(number); + B, \( Y9 M* e1 Z2 Q6 Y; @
} & A7 e' J. n8 A6 ?2 N* F
input(number)
& Q+ g. E. q+ r' `+ h0 Yint number[10];
9 A  h" G5 k8 e! b, |; [9 q5 X( O{int i;
) l$ _7 ^3 h8 B0 @) i( |for(i=0;i<9;i++) 7 @3 m& p! N9 V' `+ I
scanf("%d,",&number); 5 Y  e  ^% k6 J* A, C: n8 D
scanf("%d",&number[9]);
% l: m4 d! s/ H2 H5 U; `& w/ w}
3 D5 u7 F: z2 t5 Q+ z) P( fmax_min(array)
4 P4 |1 e/ i! R1 t+ O* k4 ~int array[10]; % e) {& P$ t: \- O1 [) ]
{int *max,*min,k,l;
7 U3 @' D2 i( u2 f6 q$ Mint *p,*arr_end;
# s9 V/ j* s8 I: n1 uarr_end=array+10; , o1 P" f8 q. Z4 R+ C9 S
max=min=array;
; O6 x& h3 g6 X1 o  ^# q/ p, v3 V- wfor(p=array+1;p if(*p>*max) max=p; 4 M/ L8 C3 @0 l$ Y0 y  U$ U
else if(*p<*min) min=p; & I; k- Q$ o, P$ o5 E( K  a
k=*max; 1 b3 U$ y) K  O4 K1 T# N
l=*min; % r4 Q6 g' B$ H, e6 x; L3 S
*p=array[0];array[0]=l;l=*p;
* S+ X/ t' k- M8 f3 v6 r5 G*p=array[9];array[9]=k;k=*p;
6 d* g; g5 u+ R" Ireturn;
/ O6 S/ E  N/ r}
+ q3 z* Q- |8 E* h1 Ioutput(array)
' m/ W! ]- L' Y& j. Iint array[10]; " X* E6 ~9 s4 g) A8 U  m# L
{ int *p;
+ l2 w! |2 H) d  q: v3 @for(p=array;p printf("%d,",*p);
& q3 |1 ^& t2 \  }4 t" Nprintf("%d\n",array[9]);
6 _0 N9 Q# L5 v/ d$ s( f}
7 }, V' @- Q; z/ T' O==============================================================
. n" D( L0 B+ o+ Q/ [$ ^4 j8 w

, u# S# A( l& E0 r/ f

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-9-5 04:23 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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