找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

C语言经典算法50-67

[复制链接]

114

主题

136

帖子

1000

积分

四级会员(40)

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

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

EDA365欢迎您!

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

x
【程序50
! Q+ k( V+ H* w+ P" }9 u  M3 L题目:#include 的应用练习
4 }/ s  x1 e% Q! O1.程序分析:
6 G; {; v. R1 K% K! d& `2.程序源代码: 5 V+ X' N+ s9 |" X. m' S
test.h 文件如下: 0 `$ [' Z0 g7 [- m( J
#define LAG > + {0 D) o1 N& Z) }. n
#define SMA < 8 r) |% p3 ?6 i/ M5 C1 d1 o
#define EQ ==
( f/ |: }* f5 [4 d, h8 ~, c#include "test.h" /*一个新文件50.c,包含test.h*/
0 Z, |; H5 S( E3 y+ j; v#include "stdio.h"
+ s6 I6 \4 K0 Z0 n! G* x& G* O. s& qvoid main() # H, _' `- {. Q1 H4 B
{ int i=10;
- D5 o6 X/ Y7 D# v' U4 Bint j=20;
5 L1 {6 o* }% M! {5 O2 gif(i LAG j) 7 O3 j. c. B# P; Y) A
printf("\40: %d larger than %d \n",i,j); : T" V) c3 `8 p8 H7 P
else if(i EQ j)
8 e( n  `, }' {9 `' Oprintf("\40: %d equal to %d \n",i,j); 0 @4 ]8 B5 ~! r# r7 P$ k
else if(i SMA j) 8 d- j) _# L: X# {( f
printf("\40:%d smaller than %d \n",i,j); 0 H) R9 Y* s3 M2 U4 k) p
else
: X1 N/ W' W: {# i: v3 l- @printf("\40: No such value.\n");
' _+ d/ U, f7 y( G* ~4 E( ]}
8 I7 u  _- h! ]1 }【程序51' H, q  H4 G, Y% m9 ^0 m
题目:学习使用按位与 & # A4 d. a& T9 L9 l/ L% I
1.程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1
7 B2 [" k: X+ c* Q! |: n7 q2.程序源代码:
2 r4 v1 z$ L8 c* @) G#include "stdio.h"
4 s2 ~  m1 y: nmain()
% S( A" z* U3 z7 ~) g% ^% P{
  }# P0 ]' I6 t, Wint a,b; - O) e( R! s9 O! d3 N0 Z& l
a=077;
7 q# M& r( }2 w+ x& W; cb=a&3;
- P1 x8 ]' N9 X4 Mprintf("\40: The a & b(decimal) is %d \n",b); : q9 q' R& T5 t/ a  K2 ^5 Z
b&=7; 8 ~4 @; j; }) r7 u( u* y
printf("\40: The a & b(decimal) is %d \n",b);
' Q/ t& j5 @  J5 d6 E' S}
1 S5 z$ Q2 f: O7 s; Y" k: ?( e7 j  ]! h7 a============================================================== & P% \0 N/ M  @6 b9 w$ w/ }
【程序52
# M; w2 e" n0 b题目:学习使用按位或 | 4 n0 {0 F' Q' I* M2 ~6 U, W
1.程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1 0 r6 F1 K) K7 O
2.程序源代码: 2 t- v9 W8 q5 O/ Q% k5 P8 }
#include "stdio.h" & d  l- v$ ~6 k) R
main() 9 C! v1 D- q. i4 B- `7 \
{ 1 s# d( h7 h6 M8 K: N. {" `5 X
int a,b; : Q: I) M1 Y7 @6 \5 C6 @
a=077; % r' Q. n; C5 h! E! B
b=a|3; 6 V6 h$ \! ]. S, l+ {+ a# s. V* K
printf("\40: The a & b(decimal) is %d \n",b);
8 B: }7 e6 Q% M4 g5 {) `2 h# Pb|=7; " M' e% b5 L6 ^* ~: E  t0 H$ o
printf("\40: The a & b(decimal) is %d \n",b);
/ p) h. a; S7 h( q7 }- e, g. ~9 Z! \}
$ U. h* [0 s; {& ~7 W==============================================================
( O. @4 c% P8 t4 v  i【程序53嵌入式信盈达企鹅要妖气呜呜吧久零纪要
' v) l+ l/ x) z9 Z: D# z+ l1 }题目:学习使用按位异或 ^
: I9 u9 S; ~* w( K6 h: G! f1.程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0
9 C# a: C+ h# h& A. p3 {5 \6 S) U2.程序源代码: ( r+ x! N( O2 t' V
#include "stdio.h"
* t/ T  h# i  U4 Q$ |8 S6 u) Lmain() 1 n8 {. \& v5 D
{
: A% W# Z5 @  i1 `int a,b;
9 e9 x0 S+ Z; v7 Ra=077;
2 s) E4 D! [) D5 y# m" \" Eb=a^3;
5 A: w4 y* u/ ^/ R, rprintf("\40: The a & b(decimal) is %d \n",b); : |) D  C" t& i; a' d1 O
b^=7; / d- ~2 c; E; f" _2 R
printf("\40: The a & b(decimal) is %d \n",b);
9 Q( {8 S% n6 `2 V5 O" {& [. m}
3 G1 @* B& e5 D/ m, V( F8 g" g, m) |==============================================================
, y% b' s# z: v, t) i【程序543 a( z2 K7 C9 Q
题目:取一个整数a从右端开始的47位。 / G4 J+ o+ b. |
程序分析:可以这样考虑:
# t3 g6 q0 ?% ~  h1 |(1)先使a右移4位。
4 n$ Q! V7 p# ~  x* r* |; U(2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4)
3 ^1 k4 I- ?) b(3)将上面二者进行&运算。
' p$ h" m  S! p0 W) E2.程序源代码:
4 b: a) T  g, P* U5 y/ M1 G" i2 X8 n! @main()   X. ~7 ~  a5 V  z; {2 w" X9 I
{ 8 @7 h6 S5 f; n6 b8 |' y/ w9 H8 o
unsigned a,b,c,d; / J9 A( f. c+ s) P( w9 j
scanf("%o",&a);
/ e2 W! q; g8 ]+ a+ L" u% {" Hb=a>>4; - A* K% C% s* M0 g! p; S
c=~(~0<<4);
2 D& J+ n$ `6 o5 q' f) b* Pd=b&c;
6 I& g) H: q  v% T( ^! Vprintf("%o\n%o\n",a,d); % t" O5 s# H4 F+ K9 ^
}
4 X* E: j9 @( F==============================================================
6 |9 z" k/ V! d  W" J【程序55; R: A. ]1 x* O' {
题目:学习使用按位取反~; O& [1 E; ?# t. P) u; Y
1.程序分析:~0=1; ~1=0; , n# h$ K7 N* c: f
2.程序源代码:
8 r/ C' o7 j0 c' N3 `. R& _#include "stdio.h" # U8 `! [# Y7 X* o! Y; o0 f5 S
main()
' T3 V& E" c5 t{ 3 a6 T! l6 g5 ?' H
int a,b;   }: }& }' d: y: J& @! L/ ]
a=234;
5 N0 s7 Q/ Y% i( |) O- |2 jb=~a;
5 R8 u" m! f* `% H7 Nprintf("\40: The a's 1 complement(decimal) is %d \n",b); 4 H5 ~& u( s  L! B* z
a=~a; * f( a0 d0 J# Z! V7 e
printf("\40: The a's 1 complement(hexidecimal) is %x \n",a); ) E) w4 {. |, Z9 h
} ' T6 i! {1 [, ^# c
==============================================================
, I+ k" M3 A. r【程序56
! ]( ?" D% D" P3 \7 w% H% Q" B题目:画图,学用circle画圆形。 ! L" q* \! _2 F/ l; W8 i( h8 j
1.程序分析: 5 l8 ]! H6 D3 K
2.程序源代码:
+ p# s5 W5 z/ k2 Q/ g$ [: Y' Y2 S/*circle*/ ( r" ], j" `- ?: k. j
#include "graphics.h" 6 a9 d1 E' K  V) {
main()
. m, K, b. h+ F; I, I{int driver,mode,i;
, E+ [3 ]( @: v7 {& J) `float j=1,k=1;
. A9 P* g$ z; i( O$ x" S& ddriver=VGA;mode=VGAHI;
0 k0 \$ [+ x" @  n) R  f5 Rinitgraph(&driver,&mode,"");
- A7 \" H5 Y; _8 o4 O8 csetbkcolor(YELLOW); * _" e: `1 m& P( u1 R- B
for(i=0;i<=25;i++)
' o# p- u2 H8 O* Y: M0 D{ 6 X' ?. W- g0 q# t$ Z
setcolor(8);
3 w" q7 w: \9 y4 l6 }/ p) _( d& xcircle(310,250,k);
; b5 |9 [7 @% P7 A0 U5 P* Fk=k+j; ( x5 e& L) G8 d8 v
j=j+0.3;
. _6 @4 X2 p3 T  p/ S}
% N( R  J& S9 R}
% I) V6 _0 F& _  L2 k==============================================================
; Z0 v2 x/ Q: L【程序57
+ r/ i( V, H+ C; V3 R; B' d9 }题目:画图,学用line画直线。
) T. n0 d$ ^! q) j. D- M9 `1.程序分析: * y, V3 z" ^0 j5 C; R8 E
2.程序源代码: ( E. l+ X$ w3 V7 n$ T5 U' }
#include "graphics.h"
$ _# S" K9 J$ {3 J" ~% `main() . n+ ^1 Z* I+ \" ?( E* a
{int driver,mode,i;
3 k& a3 w" Y6 J$ u4 vfloat x0,y0,y1,x1;
9 m- L/ t2 d6 \7 W: ^5 H3 Q$ W# Wfloat j=12,k; 3 |5 p# I* t  S: T
driver=VGA;mode=VGAHI; / Y4 t4 g* K) T( r
initgraph(&driver,&mode,""); & x" C* R  A6 S: o
setbkcolor(GREEN); + {% P# x: N' l0 y& M: ?( y- F2 D
x0=263;y0=263;y1=275;x1=275; : u6 v$ h. @/ z* Z3 G9 @
for(i=0;i<=18;i++)
- ?% R4 B1 `% l! i" K; b{ ! e, q; }& W- p% l" k! D
setcolor(5);
) M  p  S! p+ G9 T8 B' G* wline(x0,y0,x0,y1);
# p( @% G+ e4 Q+ e: h( m2 J. ix0=x0-5;
2 G4 l+ C: d1 u  O! ^9 Y7 {/ Sy0=y0-5; 6 {6 r* {  H4 w6 R4 Q" E
x1=x1+5; ( ^+ [+ _7 M; u3 I
y1=y1+5;
7 a6 V# ^2 P9 d' s9 A- ]8 }# F& p0 jj=j+10; 0 B) [! W8 {4 K  F0 ]! \; X8 E( T
} $ w! s! g/ ?2 ^# h3 K
x0=263;y1=275;y0=263;
  A6 a0 d$ O1 B7 lfor(i=0;i<=20;i++) 4 o: Z! D" S# m/ e0 {5 O
{
% f$ x  [4 C$ m. |/ Gsetcolor(5);
; C7 C  e" C5 o! ~5 U( jline(x0,y0,x0,y1); 8 g- I7 U6 X4 c! ^& I; Y
x0=x0+5; . g1 f8 }4 w$ L+ s9 B
y0=y0+5;
/ U3 L# f8 c( `0 |, H! N; B2 Dy1=y1-5;
8 r* ^" @, @/ q' K9 K  {} ! U$ R1 M) F* G. S5 M( |
} , s9 R. `/ Y  b8 {8 z- `7 Z
============================================================== - {' t1 o! r& X' }  ^: f
【程序58, P8 R1 D( ^0 ?: |1 i  _. r. s  X
题目:画图,学用rectangle画方形。 1 K6 a* C+ {& h# v& x
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 : j, ?4 }; D' t7 ]1 X* x/ q; B
2.程序源代码: 2 @( [: M% s: I9 e* `4 `2 u
#include "graphics.h"
0 A  W3 i# B3 x( L, l" Hmain()
6 k4 \" M2 @* n0 d{int x0,y0,y1,x1,driver,mode,i;
: _8 r% [& ^" V' \8 q& Z  zdriver=VGA;mode=VGAHI;
$ z) n6 k0 I4 q# n" k& O& xinitgraph(&driver,&mode,"");
; \- `2 T0 T$ `4 \- h, u1 osetbkcolor(YELLOW);
) \+ N( f& |. P. K: Cx0=263;y0=263;y1=275;x1=275;
& \5 k. n% k# v& B# ]for(i=0;i<=18;i++) # B5 \4 l! f2 j
{ - l" j6 V( a1 h- d( e" h7 q3 E9 W: `( R
setcolor(1);
$ x8 @; P2 L3 h: s4 Nrectangle(x0,y0,x1,y1); / j( G7 j! a+ J( P
x0=x0-5; / [% A. q) X; j' H2 ?& F$ }
y0=y0-5; - {: Z# f, L3 j4 b* Z7 o& b6 V
x1=x1+5;   {  Z* U, Y, C# o) \; n7 C
y1=y1+5;
6 \- s/ ]6 m$ u( s3 N}
. l' E* ^: n/ I5 Lsettextstyle(DEFAULT_FONT,HORIZ_DIR,2); $ {: [9 R5 ?1 b
outtextxy(150,40,"How beautiful it is!"); 4 _1 q' D3 D- H; b
line(130,60,480,60); 0 Q# O  X# i) S' J6 x- k8 Z
setcolor(2);
& A' m' \  U6 w' Lcircle(269,269,137); ' @1 b8 u, p* ?$ L8 m
} ! s0 }8 ?/ l. w: y4 g1 H) K
==============================================================
. G4 ]7 o6 y) \$ f$ g【程序59
' u8 `. d/ }2 Y- b% E! T6 O题目:画图,综合例子。 ' `8 |; u: n$ I- d  i. o" E
1.程序分析:
* ?  I" a) U, P' h2.程序源代码: ( Z2 i) u) U( [$ p$ T
# define PAI 3.1415926 * N# s8 |/ U0 x7 H% m( n" N& Y
# define B 0.809
# J! A% U. ~0 }5 R& P+ I4 I# include "graphics.h"
. D. A) }. {0 ^% J# k1 ?& |2 x#include "math.h"   a! X- Q3 i$ C3 i2 i* b: n" O
main() 3 G5 t& h$ p; L8 V7 V
{
& W1 y$ T( b5 ?! v. zint i,j,k,x0,y0,x,y,driver,mode; * u7 P& q( C! f9 @5 \
float a; ' a# ^$ h5 r" Z& d
driver=CGA;mode=CGAC0; 1 {0 Y: j( X/ F; \1 S. A, `9 V: Y
initgraph(&driver,&mode,""); 2 E0 M) p: w. l) K6 s0 x) l
setcolor(3); * R- Q0 Z6 ]) A. W
setbkcolor(GREEN); + E. _5 I4 f# E3 p- Q4 t
x0=150;y0=100; % W! |9 e" f2 j. `
circle(x0,y0,10);
6 `% g1 x1 Y: F0 P# Jcircle(x0,y0,20); 1 b- @/ S1 I' U) V' Y
circle(x0,y0,50); 8 k8 B. H8 ^) X' n5 F3 P9 ]
for(i=0;i<16;i++)
/ ^& Z! p# h  B8 B5 H( ^2 U4 Z2 d! i{
6 F; r6 U2 p& ~# v" h7 Xa=(2*PAI/16)*i; " ~7 i8 h2 R0 G
x=ceil(x0+48*cos(a));
6 p( W! B( |8 H! Z, u9 Ty=ceil(y0+48*sin(a)*B); * V0 P# g. [# t* |- v& G1 k0 _. X
setcolor(2); line(x0,y0,x,y);}
3 C: F* b2 u( d- E9 W# Q1 F' Isetcolor(3);circle(x0,y0,60); ; W. [7 t! I' b  l3 v( {  N
/* Make 0 time normal size letters */ ) J' w4 t5 ]( g) Q+ l# l+ ]! V
settextstyle(DEFAULT_FONT,HORIZ_DIR,0); , D) Z7 U9 q- t3 N  ]; p
outtextxy(10,170,"press a key"); & V: `6 ]1 K  h+ Q9 S% b' b
getch(); $ f5 {& P# V; }, i: w, g) @
setfillstyle(HATCH_FILL,YELLOW);
! P) t3 \$ f- Z  |& ?& i, \floodfill(202,100,WHITE);
* _* M! z: j6 _  lgetch(); 0 a+ O" v; X/ I; k! n- M/ f
for(k=0;k<=500;k++)
$ d- Z1 Q+ d* w9 T{ 3 I, u6 |: M/ A, {. U2 \
setcolor(3); $ E7 S: @0 _5 ~0 ~$ R
for(i=0;i<=16;i++) 1 g2 A! Q& K4 c6 F
{
8 `) N* @' v, y2 Y- Ba=(2*PAI/16)*i+(2*PAI/180)*k; ) |) p, I. g5 s( N6 ?8 j
x=ceil(x0+48*cos(a));
. w) ~2 A# B/ L6 A8 ~/ ay=ceil(y0+48+sin(a)*B); 4 t% H4 S- w, V, _: o3 m
setcolor(2); line(x0,y0,x,y); % n5 I, {3 v' }8 l$ j2 N3 Z
} 1 U2 |- E" c0 _1 |
for(j=1;j<=50;j++) " |5 G! L6 w/ U! H8 p
{
5 `3 K# r- F6 c4 }. Ea=(2*PAI/16)*i+(2*PAI/180)*k-1; # {) x  |! V  f- Z' F& n) g# n
x=ceil(x0+48*cos(a)); " ?) i! U, g9 ~( y$ v( ?; l  {
y=ceil(y0+48*sin(a)*B); ) l1 X6 @4 E& J
line(x0,y0,x,y);
) h; J! @, X3 K4 w8 ]- L}
) ?, s" ^7 z, ~: k: R( u}
+ H5 b: b- f6 E7 E; rrestorecrtmode();
2 A+ N+ ^2 [6 G+ B( }% ?4 p} 0 F2 |6 K& o# b* f  C
============================================================== % t# C: _2 Q! _3 B* f- K
【程序60
  q, z! K, J# {- M/ |1 ~题目:画图,综合例子。 ) D' A% G) Z( m& g) O0 v
1.程序分析: . q9 O( P5 G& Q0 H! J
2.程序源代码: ( ?7 T' P6 g+ P( g. a
#include "graphics.h" + b' ]1 m. Z2 Z9 i( l9 g
#define LEFT 0 ; [- e+ p/ l1 s
#define TOP 0
* s! N! H% k* V% Q* W, E- J: W#define RIGHT 639
1 w# ?. o" q/ C3 c#define BOTTOM 479
0 O: f: o1 n; O#define LINES 400 . T2 h9 x& M' \- N8 J( T! t9 z+ \+ a  r
#define MAXCOLOR 15
5 d7 \- k! C. Pmain() 0 r  i( k0 R+ U0 }" B. ?+ g
{ ( y/ y1 c; c8 E5 \! J
int driver,mode,error;
5 q3 H1 _7 `) p$ h, Dint x1,y1; ' Z2 A% G2 O' P+ T2 G& c9 l! `" `
int x2,y2; ) i  J6 W+ M+ t; T7 w/ G# {' e
int dx1,dy1,dx2,dy2,i=1; 7 }5 r, N% @7 t, D0 e' C
int count=0; 0 y: s9 W0 ]) y
int color=0;
! l, w' ^9 H; A* X; d6 S3 v" jdriver=VGA;
& o1 q) p: \" t4 c" C; Lmode=VGAHI;
3 t, f* y3 n+ T  x$ L: Kinitgraph(&driver,&mode,""); ( K2 V+ o7 z3 g% Y; w8 L% P6 e4 I2 h
x1=x2=y1=y2=10; * {5 y+ t+ ~, U) s1 k
dx1=dy1=2; / e# A3 L" I% k) j9 |5 y+ Y
dx2=dy2=3;
+ c& s$ [5 ^1 U* cwhile(!kbhit())   A$ E1 F, p( s8 r! w; c
{ ' ~/ L& F! J" T1 F, }* r
line(x1,y1,x2,y2);
  E/ n  ~9 D  @8 Z6 p3 V( t- r" Ux1+=dx1;y1+=dy1; 6 n  }" |1 Y( `& d) z( v
x2+=dx2;y2+dy2;
3 w$ B% j' z, U, z0 }; l% aif(x1<=LEFT||x1>=RIGHT)
) t2 E( Y  d! X' ]! s7 idx1=-dx1;
6 ?0 K+ X2 n8 U) |, f9 t- Fif(y1<=TOP||y1>=BOTTOM)
2 s0 u% q7 s6 y) |$ zdy1=-dy1; ! }/ }: L7 H6 G. C. Z: O( f
if(x2<=LEFT||x2>=RIGHT) 1 X- C& _2 s" r7 k# M. j( c: O6 I
dx2=-dx2;
8 k# y: K- F1 A4 B6 lif(y2<=TOP||y2>=BOTTOM) 3 Y. r; Z: Q" k; R! A, R; z
dy2=-dy2;
: k) m$ X/ s3 R" q, Sif(++count>LINES) % Y: h' `, L5 a2 |! S  Y
{
( ]/ F. M- N$ p/ Wsetcolor(color); ! f4 A1 G! l# n( Z. o7 O  N
color=(color>=MAXCOLOR)?0:++color; " }2 j; L! z/ Y
} 7 O7 i2 D- O* l2 \' w. a
} % ~2 ?& j; |- Q0 k& x* K: K! }
closegraph();
0 O6 O& l; {8 z% ?6 v; N' I' e}
【程序61
$ H4 O% Y2 e: q题目:打印出杨辉三角形(要求打印出10行如下图)
8 Y: O4 j, ^; I. I- L9 {5 t1.程序分析:
0 m2 y8 C& V. W# ?: k/ E+ a% u1
0 r3 f8 i) t) [/ d9 z( y& l1 1 4 e: J- ?8 ?% P% T* R/ E9 U
1 2 1
. K6 _8 B% a* N0 u; [4 E, @1 3 3 1 % v5 F( E2 w9 v, y( r$ ~
1 4 6 4 1
* E+ P7 c& O4 g  M1 5 10 10 5 1 6 S. @$ X5 G$ O
2.程序源代码:
) ~4 `; t9 M9 _  U& R# ]main() ( [- q( c3 ^- d$ ?- A2 h5 G# f
{int i,j;
; z+ A* z2 }: @; Cint a[10][10];
* `" s9 j  [! a) j4 r# Eprintf("\n"); $ F5 [- Y) D9 Y7 k- u
for(i=0;i<10;i++) ) G; w5 ]0 m, W
{a[0]=1;
5 ~9 S1 q" [' ~! A+ oa=1;}
" X2 A) Y' {0 R4 Efor(i=2;i<10;i++)
# D  d: o7 ?9 _) ffor(j=1;j a[j]=a[i-1][j-1]+a[i-1][j];
- I3 ^2 n6 e* p) ^+ {5 _for(i=0;i<10;i++) 2 {3 b, W* n; ]9 {
{for(j=0;j<=i;j++) - A' t1 i: M2 C
printf("]",a[j]); % X& |+ ~: A# e. {
printf("\n");
4 e  c% B+ M+ [8 m: c} 0 T/ }" K1 U: y3 N0 Q
}
+ S) o3 _/ d7 q1 k  W- [==============================================================
% F4 ~# I: W7 L) X4 ]1 l3 C* H" }【程序62& f+ j% Z' v) Z" R' i% r
题目:学习putpixel画点。
3 ?7 {: c# S$ A6 o  N% [* C1.程序分析:
1 {4 l3 s. C8 x& y2.程序源代码:
1 B# b; L% E& ^+ U8 m# |#include "stdio.h"
& t: R5 k1 g2 C5 z) l#include "graphics.h"
+ V6 a0 K+ h- S1 b5 P5 j# dmain()
. e6 f+ k2 b/ T, q{
, n. o- }1 i3 c, O! gint i,j,driver=VGA,mode=VGAHI;
5 F( o9 t& r3 T* U* ninitgraph(&driver,&mode,"");
" ]; Z( L* t* `1 Ysetbkcolor(YELLOW); ( S: {8 k; W1 C" E
for(i=50;i<=230;i+=20) * \- M$ V% m$ J# G
for(j=50;j<=230;j++) / o8 m, }5 ~2 g8 V# y1 J. F
putpixel(i,j,1); ! E, j) D5 t5 A5 X: j/ `1 P6 z/ J( Y
for(j=50;j<=230;j+=20) - `- q+ A7 }+ L9 Q) |  m1 ^) U
for(i=50;i<=230;i++)
% Q7 l" B* g9 c, A/ Iputpixel(i,j,1); 7 ^  J4 h! H( |
}
0 Q; m9 G5 b2 D1 J/ A==============================================================
. q# D; |6 n4 H1 R4 }【程序63' U# ]4 J: Z* h! h$ X% y2 b' u1 ^
题目:画椭圆ellipse
) ^4 r! E/ h6 s1.程序分析: . z! |- i) e. Y0 }- _! O
2.程序源代码:
' |& B& D7 E0 A7 i7 i9 b% G#include "stdio.h" 7 x7 v& i8 Z8 p
#include "graphics.h"
$ O# d" i# J2 g7 @/ r#include "conio.h" 2 r1 y* Y- L" {
main() ; H# [) x3 f0 N* y# q- l" w0 G
{
, [- ?& t2 ?3 O! Uint x=360,y=160,driver=VGA,mode=VGAHI;
  L2 V* R" Z5 J+ S' R, iint num=20,i; 0 E/ s% K- [  L  \# h. f9 O
int top,bottom;
+ n5 i0 L7 d! y( v, R2 Rinitgraph(&driver,&mode,""); + `8 p2 U; ^# K8 S( t
top=y-30; ' Z3 F8 }2 G8 u" P, u7 q9 s- q
bottom=y-30; * u: E- M5 X) G
for(i=0;i{
5 j/ j% K- g$ }( r! t; Pellipse(250,250,0,360,top,bottom); - p  d# R# m8 a8 z4 q9 d
top-=5; 8 P, c! E6 \0 a# b: {5 h3 ~) ~
bottom+=5;   p: h! i& S4 ~  J2 J% Q
}
$ K5 @1 @: g/ Bgetch(); * ?1 U# R! J+ e9 M
} : r2 M, r$ ~/ z$ x  @& B
==============================================================
$ z* S% e+ I, \- ^4 R【程序644 {3 k( [2 g8 b  Z2 R
题目:利用ellipse and rectangle 画图。 & e% M$ c( ?" w9 w  Y7 |* R" I
1.程序分析: 9 B2 i( N  l. x/ R% q
2.程序源代码:
+ J4 J0 F. p$ q: Y+ B6 G$ A1 L#include "stdio.h"
& Y) e/ l0 ~4 h0 F3 e#include "graphics.h" / d9 ]; U3 ?. Y1 Y2 H
#include "conio.h"
5 l- h7 m8 k3 q. y* }! D! }main() 9 W8 G- @: j) u" d6 r* r
{
* Q$ s( m- g1 L( p& Cint driver=VGA,mode=VGAHI;
" g5 C) [4 K9 {, zint i,num=15,top=50; & L- t2 D7 V( c2 w3 d) K
int left=20,right=50; + K* k" c4 b/ r% ?7 e+ |2 `
initgraph(&driver,&mode,""); & }3 h% j- H9 B* ^
for(i=0;i{
* m. p2 N9 X' v9 k( ^1 yellipse(250,250,0,360,right,left); % Q/ T4 Q/ `( D* r; s: Z
ellipse(250,250,0,360,20,top);
, M) k1 `0 \+ _# Irectangle(20-2*i,20-2*i,10*(i+2),10*(i+2));
/ S* ^0 E+ U" D0 m2 W  j& nright+=5; ) t7 R, M* w/ B0 g7 h
left+=5; ! Z$ t6 v: ^5 R8 m1 ~% Y% ^
top+=10;
$ n" F; B  P9 I) x- P}
9 h$ }9 q8 H4 V# W5 S' l5 J, L# A0 ygetch();
- {2 g% m  A" x2 h5 ^$ Y} 8 X- }; l0 J- B& B2 L$ v
==============================================================
7 n5 H: S4 U# r$ B% v【程序652 ~, b- @( N5 F& Y* @1 q
题目:一个最优美的图案。
3 l. Q2 r# k5 d" v8 N4 B& T' v1.程序分析: ( ^3 K: X, A% B& _
2.程序源代码: - s4 ?- w) ^6 P% P7 T* |! V8 W
#include "graphics.h" 4 T5 B6 r, i( o
#include "math.h" ; t! z1 X0 h6 r$ B* z
#include "dos.h"
- P/ w% C  E1 N0 [#include "conio.h"
2 ?  ]; j( \, \+ j. X#include "stdlib.h"
2 @; w" j5 h) F, O1 {" K3 Q#include "stdio.h" 1 L) r" h, J4 C3 w% b% @1 i7 P' h! n
#include "stdarg.h" 7 N2 Z) M& e+ H
#define MAXPTS 15
1 Z3 ?8 f1 I0 m/ c. H. p; d! k#define PI 3.1415926
3 {* T$ a* P) K7 e( }* Pstruct PTS { 1 f, d% l4 K( d. G" o" T; I" L
int x,y; ; ~( g' r6 n! ~# I
};
+ [* m" v  U0 T- q! F; F5 E+ odouble AspectRatio=0.85;
0 S4 \; a& ]+ ?" h- _1 _$ dvoid LineToDemo(void)
+ X0 ]3 T4 n# I' W" _{ + k! I, F7 ]) `5 x( G3 d6 r* f
struct viewporttype vp; 2 }; Q. R3 Z# l$ X, z6 y
struct PTS points[MAXPTS];
# i2 J# q% z& X6 bint i, j, h, w, xcenter, ycenter; 3 s, t: c& T# h& l: U: Y0 _! [
int radius, angle, step; % I- D; X. Y1 X2 M  Z$ B# x
double rads;
4 |; c, G' W. l) ?' D4 Hprintf(" MoveTo / LineTo Demonstration" );
" p& E/ Q" D1 R1 |getviewsettings( &vp );
/ U% ^4 n. Z2 t" Sh = vp.bottom - vp.top;
+ Q0 K, \6 p4 ]: [0 \w = vp.right - vp.left;
( [; H5 h, @, Z! |! _' oxcenter = w / 2; /* Determine the center of circle */
3 K* |" G& }- C% B  |% p0 cycenter = h / 2;
* S3 ]: f+ R- D6 B* J/ G; iradius = (h - 30) / (AspectRatio * 2); # D3 R- X  b; V+ s
step = 360 / MAXPTS; /* Determine # of increments */
: Z# W4 @% x, w  iangle = 0; /* Begin at zero degrees */ 6 ~1 P* b- c# A4 U4 O) ~3 M+ E
for( i=0 ; irads = (double)angle * PI / 180.0; /* Convert angle to radians */ + W* h3 b3 d% y/ q1 v, h, G2 O
points.x = xcenter + (int)( cos(rads) * radius );
9 i( @* R* c4 D  }5 G7 Rpoints.y = ycenter - (int)( sin(rads) * radius * AspectRatio ); " T: k, B) Z0 w6 I$ A
angle += step; /* Move to next increment */
! j$ \# v: ]# x( i) D0 h3 n} - Y1 g9 D: J$ D& g
circle( xcenter, ycenter, radius ); /* Draw bounding circle */
* F0 t( c$ N( E: u% E" n- Dfor( i=0 ; ifor( j=i ; jmoveto(points.x, points.y); /* Move to beginning of cord */
1 E  v9 W  o5 e& y8 K! t1 Wlineto(points[j].x, points[j].y); /* Draw the cord */ ! b) w: g: J' J2 W, v: @
} } }
0 d& p8 V* P: x" M  {8 u  `( z' Bmain() 7 g3 y6 z( r3 j( G1 I, s
{int driver,mode;
8 D9 L0 N  c6 ?6 h% y+ mdriver=CGA;mode=CGAC0;
5 ~1 |7 l4 G. h, i* Y: B; Ainitgraph(&driver,&mode,""); 3 o& y+ i$ W3 S# A
setcolor(3);
( s; g- c( \2 Asetbkcolor(GREEN); 1 [  y& o2 J: Y; M6 x% U1 Z0 y
LineToDemo();} 2 l2 E8 h% P! V* J" K
============================================================== ( K' p+ Y& s. m6 @4 X1 H- u
【程序66
- x6 R" f# P5 d5 u8 ]% b5 X题目:输入3个数a,b,c,按大小顺序输出。 ) I8 I' I* K- {& Y  [3 j
1.程序分析:利用指针方法。
2 l/ u: O' a: ?; D2 W# k2.程序源代码:
7 J9 C2 g! E& a/*pointer*/
" n: w4 g- k* f. {7 Rmain() 0 }' p+ G! V" q( o9 M
{ 6 e3 j. i, p- U9 U1 E5 ?
int n1,n2,n3; 8 Z5 Q( m# \+ r
int *pointer1,*pointer2,*pointer3; , g3 H7 b7 p! j/ [! L# e
printf("please input 3 number:n1,n2,n3:");
2 a% ]/ q/ J3 `2 s0 W) q8 ascanf("%d,%d,%d",&n1,&n2,&n3);
  M& @, P- K! `! r+ lpointer1=&n1;
* E! y  Q/ i) Z# g- o. spointer2=&n2;   u; I. g2 h$ a; Y2 r
pointer3=&n3;
' R5 v' d! A' X  G' D3 rif(n1>n2) swap(pointer1,pointer2); 7 e# y5 `6 l4 g! H
if(n1>n3) swap(pointer1,pointer3);
3 N1 R% ^3 Y' X, D0 ^if(n2>n3) swap(pointer2,pointer3);
" g& |! N+ [8 N9 i+ Oprintf("the sorted numbers are:%d,%d,%d\n",n1,n2,n3);
' f; ]% @# Y) Y& ~} ; e2 f+ W+ b; o: P9 J3 [" W7 m
swap(p1,p2)
, o' s& m& |) Q- ?7 ~int *p1,*p2;
$ q7 F3 e7 z0 n5 L0 E9 n{int p;
& Z1 _# {0 _  d8 o- [4 ?. tp=*p1;*p1=*p2;*p2=p; ) d* i5 A4 t- U2 n$ u/ _4 E
}
% O( D% t5 i7 @) O7 j) h2 J============================================================== 1 V# w0 r/ W  D
【程序67& Q! y  j! t0 p& ^' d  X5 A
题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 * N  f% J# u- p$ q0 U$ k
1.程序分析:谭浩强的书中答案有问题。
# h$ P# N) j$ B" S% D6 I; d2.程序源代码: % F3 D; P0 Y; ^/ T3 ?, ^
main()
$ ]8 x) q- x' s$ m1 _8 F{ 1 p, A  P5 z1 k" @6 |
int number[10]; 6 @  k( Z' j# L6 k& f. i
input(number); 7 b& g1 R, ~/ m6 s3 X$ D
max_min(number); ' }7 D! @$ s1 A& `
output(number);
8 P6 {" |; ?$ i9 C9 H} 8 E+ V7 f6 T1 B3 j! M
input(number) 7 _6 k: q9 ], |: O  @% J) `
int number[10]; - t  {2 [# W7 s+ s  r
{int i; ) A/ p% X4 m' V% M- q& m' ~
for(i=0;i<9;i++)
! b2 E" x0 b3 q1 tscanf("%d,",&number); ; t# C  v3 k# D! _
scanf("%d",&number[9]); % A* B, j) G) h% g6 ?6 t4 r
} 9 C( q6 G, w. p& C' L9 |
max_min(array) 3 j! |: U1 f4 h1 U
int array[10]; 1 T( G/ S! ]8 U! [& ?
{int *max,*min,k,l;
. _' d5 s. j5 ?$ d6 n( Qint *p,*arr_end;
- q6 ~0 |$ h3 |( x! Uarr_end=array+10; ( J7 z* r6 c( e. Q8 F. Y4 Z( y8 P
max=min=array; 3 p( g4 z7 [' f9 @. k2 \3 \6 A
for(p=array+1;p if(*p>*max) max=p;
1 i) Z5 V9 c! E' B0 ?. U, N, Zelse if(*p<*min) min=p;
7 a1 h. x( A. Q3 [5 _! M1 p1 Ik=*max;
0 `, |2 W8 i" b3 }7 L+ Fl=*min;
3 ?* ^9 C1 M! B*p=array[0];array[0]=l;l=*p;
; E0 q6 p. ]5 p, j# I+ e' S9 ]*p=array[9];array[9]=k;k=*p;
: J% x# H% F! `9 N$ Jreturn;
, k5 @- O& i2 ~  R$ x2 l" Q}
+ b6 F$ k" R8 i/ e6 m4 @output(array) " g1 r* p1 @+ {- o+ S
int array[10];
# n9 t0 V6 g. N1 ]9 S( w{ int *p; . A+ r& ~$ {8 s/ C, U$ b. S
for(p=array;p printf("%d,",*p);
8 b, n' L" [2 t. Xprintf("%d\n",array[9]);
  |  j' ^6 b# ?* T} ' q+ m  R' n' _0 v' w' N
============================================================== 6 l3 y3 y- q/ Y; \

' K, z8 ]# l7 L, r0 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, 2024-10-18 23:24 , Processed in 0.072799 second(s), 32 queries , Gzip On.

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

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

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