找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

C语言经典算法50-67

[复制链接]

114

主题

136

帖子

1000

积分

四级会员(40)

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

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

EDA365欢迎您!

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

x
【程序50
' i$ O7 v6 M& I7 |( B% V+ r题目:#include 的应用练习 + r# w! \1 l: d6 z* d" x+ Z" B
1.程序分析:
5 w9 i0 P; {! ~4 I. Z/ C) i9 w/ K2.程序源代码: 3 a* l) M9 w6 H$ U' `! J4 A
test.h 文件如下:
3 o% d2 D7 p% X3 H#define LAG > 4 Q  T! R. s+ j/ H, n
#define SMA <
0 a; j2 I% ~5 `5 f#define EQ ==
8 C2 J2 X! Q/ e# m4 \, p2 m#include "test.h" /*一个新文件50.c,包含test.h*/
# P+ V* {5 @8 G( S' m/ _; U#include "stdio.h" - ~$ y; L3 y3 w, j' Q
void main() 0 M8 x* H8 I3 X) x) |- X
{ int i=10; ; `6 a( ]( G' P- A; n6 h: @
int j=20; ( d5 v) g2 D3 w/ `; q
if(i LAG j)
* s; U5 t" L' y) M( Wprintf("\40: %d larger than %d \n",i,j);
: y6 U- j. m6 n8 q; U1 Delse if(i EQ j) 0 W1 N; W% c2 n! b4 f: S/ |+ {/ O
printf("\40: %d equal to %d \n",i,j); " [7 @( G9 k  Z) I3 ^
else if(i SMA j) " U( _3 z+ H% Y4 [- f9 B5 Q
printf("\40:%d smaller than %d \n",i,j); 2 F2 J  a  _6 S" \' n8 H2 r
else * a8 G4 T- i+ Z  C* i# |
printf("\40: No such value.\n");
1 o1 z" v& \6 ^} 8 s. N3 T, J0 ]! e# R2 m7 t! n
【程序51* Z5 L) L3 J! C* S6 V0 t: i$ m
题目:学习使用按位与 &
; |- g  J) f5 s, E& m: [6 ]  i# B  ?5 E1.程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1
) I5 _8 x* _0 h8 X+ E# }& R1 G2.程序源代码:
" a* Z5 Z* L4 v. Q0 V2 h5 P#include "stdio.h"
, ^: d, d% i2 h8 n0 fmain()
0 U: b' f/ K8 t1 v" S, ^) B{ : e% P: _6 Y% L+ D/ D
int a,b; - K* v8 }7 Y' y6 E/ Z
a=077; & d) B0 Z- e; A4 I& d0 l4 y$ R0 V
b=a&3; / W0 c0 L5 _+ B4 e- u6 u) J
printf("\40: The a & b(decimal) is %d \n",b); : v  p$ Y, {3 F9 v4 V
b&=7; , V3 y5 }; A' T8 u# t  D- h
printf("\40: The a & b(decimal) is %d \n",b); * h# i8 G, U; C& g  Y/ {
}
1 R7 C6 O4 p8 s& {  _6 x============================================================== ) n2 S1 q2 |+ [. E0 s+ B7 U( J
【程序52
4 ]5 n- J2 b+ i题目:学习使用按位或 | 7 |% U3 J5 q6 Q
1.程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1
" a) {4 i# f- r% n" g2.程序源代码:
1 }2 _8 z  d6 [! `' a#include "stdio.h"
( x# C  T% \3 z4 j$ M; Smain() , D( A& I' O( V( W8 ?. C" `8 {1 c
{
; D* w& D5 K! I" N# ~: I" D. Aint a,b; " W/ F; u& V5 [' \
a=077;
# {' o2 Q& g0 L1 ub=a|3; 1 h4 ]# @4 q2 B5 X# B/ i
printf("\40: The a & b(decimal) is %d \n",b);
! m  R' R( T4 x$ b: K. }2 D* |b|=7; 2 U( R. D8 M  n' k
printf("\40: The a & b(decimal) is %d \n",b); 7 N3 Y+ j2 Z, k3 Q6 @
} 8 D+ K$ F( r# I7 n; ]
==============================================================
. P$ C7 Y- t! X9 ?( }7 M) M/ }) n【程序53嵌入式信盈达企鹅要妖气呜呜吧久零纪要 0 D% e( F4 Q' a- T7 X8 J
题目:学习使用按位异或 ^
. |: e* \' ^$ j" _1.程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0 . Y+ g" _/ n1 F" u1 K# }  i
2.程序源代码:
: e  K8 J# ^+ c9 w/ Y" R1 q9 O" i#include "stdio.h"
  [$ s" Q7 ^) u/ H2 D; xmain()
1 g! |  F6 R2 P8 I{ 1 s# Y" u; N! R: f: Z
int a,b; ) ]* y: s; H+ f6 w" I8 ~: b
a=077; # [" I9 L* {% T# ~& a2 z
b=a^3;
/ g1 t& E7 a% `+ w# q) Z9 W* ^6 g* oprintf("\40: The a & b(decimal) is %d \n",b); 7 Z8 {. l$ }- M5 w5 Q; o! r1 O! L8 A
b^=7; # }1 c7 l" T) C* P' f: J
printf("\40: The a & b(decimal) is %d \n",b); & A1 U! u+ W5 Q* F. Q+ P+ |
} ; s3 d( Y2 M4 p/ O! D5 [
==============================================================
" _+ d  t/ U8 ~2 [& Y【程序54
% p5 ~' x( S4 a) `% R6 S题目:取一个整数a从右端开始的47位。
6 j* i+ G3 T# \1 C3 I程序分析:可以这样考虑: % z5 k( C% e  ?6 q9 z- t2 k! P
(1)先使a右移4位。
0 ]; L9 s# Q% W(2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4) $ L' @% v1 s8 m. W" J/ f0 m: ^
(3)将上面二者进行&运算。
9 u8 E/ S, I. C2 r. e& o6 U2 P3 S2.程序源代码:
# o& A6 X) A- q- Rmain() ; e4 A1 o& _; c! T) _2 I( G" j. g# G
{
) Z0 S6 C8 A5 a* `) aunsigned a,b,c,d;
2 c) @! F9 C7 S1 D0 i" wscanf("%o",&a);
7 d3 l- ^/ W& X) t$ z7 |b=a>>4;
' ]0 V7 h) s4 c5 i* Xc=~(~0<<4); 4 u  c) k1 x- g$ N# I: @3 A
d=b&c;
5 {7 W, G1 r1 w5 Z0 U* w4 m$ sprintf("%o\n%o\n",a,d);
! j6 M. P8 z: }1 J. F} 1 I; l$ W+ l  D, x; W' f+ v
==============================================================
( i0 q* {- f/ J; Y0 g$ z【程序55
& T8 s- O  @# d题目:学习使用按位取反~& u/ k2 ~: C9 f8 R& \8 R" K4 P
1.程序分析:~0=1; ~1=0; % e9 M- Z5 d' e) X; {
2.程序源代码: " d9 T# H0 @4 c
#include "stdio.h" + G$ }  ?' ~: @/ H
main() . y+ w1 l+ G- I, P/ q
{
3 a/ s- q: M# i: B# @, Gint a,b;
' l1 W% K. X! a; Ca=234;
0 T! r; `4 v2 K/ b  r" O( l- tb=~a; / @/ k7 d: s; e: H( o+ r" k+ h" W
printf("\40: The a's 1 complement(decimal) is %d \n",b); ! T$ p, u, [4 {  v7 Z/ U; B
a=~a;
5 |2 o+ L/ K7 _* Y9 l5 Q( W! Hprintf("\40: The a's 1 complement(hexidecimal) is %x \n",a); 3 j; B& K* P5 V8 i* X; I- n  i7 C
} ( k+ c+ k# z7 o8 ?+ L( P
==============================================================
& `2 Y' b  X8 ^) Y2 d/ b【程序56
* W9 N3 N  b" v+ U' t题目:画图,学用circle画圆形。
1 {2 Y$ v' l. E1.程序分析:
7 ^- o: G+ z5 Y  [+ a1 t7 k! g2.程序源代码: 7 F# W4 u: B; n0 R3 P
/*circle*/ ' |1 _- {+ F# U- a! P+ h$ u5 u* b. ^
#include "graphics.h" 8 ?+ i1 W1 a# g2 m
main() & z$ e1 {4 b# I2 H  m5 @# {
{int driver,mode,i;   J; E, d* v. o. e7 d
float j=1,k=1;
$ F  L3 K9 l  M0 }9 q  u" udriver=VGA;mode=VGAHI;
+ ~6 H8 X+ K+ x* D! G; Ainitgraph(&driver,&mode,""); 8 S# L! l6 f3 J# p) m+ h& K2 C6 _  r
setbkcolor(YELLOW); 7 U8 X6 |) k0 X; V# N
for(i=0;i<=25;i++) ; Y; R. R. U/ ]+ p( F6 v/ {# S
{ + S  T( r, j% t
setcolor(8);
% l7 C7 {  J" A% ~7 O3 {- E/ dcircle(310,250,k); 4 w7 s* D( K, W! u5 y
k=k+j; ' b) u3 g$ o8 G, ^0 K
j=j+0.3;
: i, q- _5 C$ p. a- K) A' F}
/ m1 J. {2 I8 z/ ~! b+ X! B} ! G: G* |: t) G2 i" M( o
==============================================================
0 R. a. w( R. q9 G' p% I; B6 w! x" m【程序57
# y. M9 M$ u8 ], J3 f. X8 G题目:画图,学用line画直线。 6 D: v% w/ _4 {! E( I
1.程序分析:
8 m: U  f: @* U+ @2.程序源代码: - X+ Y! c: N8 S6 P: c
#include "graphics.h"
) v( O7 @8 T1 r+ q, Imain()
& Z9 R7 ]& b7 Q. v- U! q{int driver,mode,i; 9 m- X+ A% Y8 ~+ n, u5 C
float x0,y0,y1,x1; 9 F" W' k8 l; _0 s( k$ T
float j=12,k;
; e% ^& o7 R* W# S) |, \6 ~+ Q6 A' ~driver=VGA;mode=VGAHI;
" r3 R! f; d+ ?- g1 `initgraph(&driver,&mode,"");
' h$ W8 K0 W4 G4 b! X0 ]setbkcolor(GREEN); " d4 R3 C; s$ L2 C
x0=263;y0=263;y1=275;x1=275; ) T  y0 i# [; d$ w
for(i=0;i<=18;i++) 1 j& o) p- V  G! q) V# s7 c% a
{ 9 K5 w$ G$ G8 A, W3 L  X, W
setcolor(5);
  }, }5 g+ A' s1 a# X! aline(x0,y0,x0,y1); / y2 s3 Z0 C7 a) r
x0=x0-5; ! L3 D: i0 M* p* `' f
y0=y0-5;
3 l8 q7 [* d4 P1 x8 m" H6 ix1=x1+5; 7 V$ p5 Z7 y4 |4 v6 H
y1=y1+5; 2 N& T. u& ^- r/ i: A/ e
j=j+10; ( z9 T: w* u6 M9 _- u; _
} % J8 d  E6 {. n" T+ r
x0=263;y1=275;y0=263; $ |7 \1 b7 y. z+ S- b$ X  c; k( Q
for(i=0;i<=20;i++)
$ p* u) h% }6 \; Y% E6 J* G{
" |8 a* H) C4 h0 {8 [! o$ P* E" ^setcolor(5);
6 X' b$ ^6 P$ a) k3 Vline(x0,y0,x0,y1);
3 S1 _) v. }5 y0 Dx0=x0+5; 8 N9 _( i9 V: e9 _; d, c# H5 t
y0=y0+5;
0 y& [2 k2 Y  dy1=y1-5; 3 U- X1 u; |+ ~6 \
}
+ Z  P: P" I# h4 ?! Y' x} . O3 z( }  z4 k7 {
============================================================== / W1 H$ m5 v' W# t% w1 l
【程序586 H$ j$ b5 s/ |( i$ l' A& Q  T6 v' u
题目:画图,学用rectangle画方形。
  G4 r, M) M' Z+ D. |1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 ; R- @  F6 Q; O# Q
2.程序源代码: + V7 @' I1 c& W- x5 ?& M# G4 D
#include "graphics.h"
$ Q6 L5 W4 S8 j; a8 w5 [main()
% N% i( t9 c. t8 P" |2 r0 _{int x0,y0,y1,x1,driver,mode,i; 0 @9 y& C3 @; r4 R
driver=VGA;mode=VGAHI;
* m( ^4 ?5 _/ U$ u( @* Yinitgraph(&driver,&mode,"");
. {: @& `0 z7 q1 G1 O& B6 ]setbkcolor(YELLOW);
3 q/ |6 B: g5 d  I: s# T$ Jx0=263;y0=263;y1=275;x1=275;
' J  V6 m0 n: L) wfor(i=0;i<=18;i++)
5 y, t' d  B& z+ U4 @+ z, Z{
* P' ]: M- z3 K6 j; ysetcolor(1);
$ R9 d! v+ n  H# Arectangle(x0,y0,x1,y1);
0 c; @1 o% |3 o; nx0=x0-5;
8 ~& W) c' t. M; S7 Hy0=y0-5; ' D* T" h5 L: z8 K) s
x1=x1+5; " x; L! F/ W$ x! [% I
y1=y1+5;   B+ Z+ p4 }0 R, Y: c; X) {, m9 D4 @( l
}
8 r2 d$ `' D2 M0 Isettextstyle(DEFAULT_FONT,HORIZ_DIR,2);
7 U1 k1 u5 G/ J' g; ?outtextxy(150,40,"How beautiful it is!");
) L- ]5 U; {  B5 L! Sline(130,60,480,60); / p' k4 h+ g  E% o, t6 M
setcolor(2); 4 }/ ]4 L" J, D* ^  M
circle(269,269,137); ; g% l# }3 V$ C5 ?  Y3 B
} 4 i: P4 U' l( l7 h5 \; E" X
============================================================== + B& @) r+ u1 |1 {; h6 r: Y
【程序592 [0 G) [0 h. B+ |: q
题目:画图,综合例子。
8 r' `2 V0 Y- B+ Y1.程序分析: 8 r4 M6 }# t/ F1 d7 J! `% s1 L% s
2.程序源代码:
1 M* X( [* O! J; v: r. [# define PAI 3.1415926 . N" m3 h1 `' J! O; [
# define B 0.809
3 V7 B6 p2 V7 }+ \( E# include "graphics.h"
  f" j5 l2 ~3 j. G7 o+ i) H/ m% i#include "math.h"
( o4 H/ l# e4 I$ D6 `* e" amain()
3 D' C2 u, p, _8 n- r  V{ ) h& F5 |$ H# e& d$ h
int i,j,k,x0,y0,x,y,driver,mode;
. h* C0 P8 G0 d/ u7 I  x8 Q1 tfloat a; ! W8 I2 H3 j4 x
driver=CGA;mode=CGAC0; " k9 k5 f8 I5 W, s  H/ w) n' A* w
initgraph(&driver,&mode,""); * n* s0 v5 w# i
setcolor(3); 2 l! Z) [, x/ r; z9 m/ p
setbkcolor(GREEN);
- Z( A+ R3 Q+ d! C# G; _+ ^x0=150;y0=100; : j! |( S3 x8 p4 s2 }# X1 r8 e
circle(x0,y0,10); $ M' n: S2 |- a- ^
circle(x0,y0,20);
, }& x$ Z) p% M& ~circle(x0,y0,50); ) U8 l' N  y/ ^
for(i=0;i<16;i++)
, P; ]2 I6 }5 v3 C: L{
2 Q) T4 y" G( k% N- T8 C, Ra=(2*PAI/16)*i; 9 h7 d9 ^* k' b! |4 T! @
x=ceil(x0+48*cos(a)); ( D1 h8 R! Y! v; k
y=ceil(y0+48*sin(a)*B);
& o% x2 |0 ^7 csetcolor(2); line(x0,y0,x,y);} " Q* E' @, t& K. j! W. g
setcolor(3);circle(x0,y0,60); % f3 n6 S  _) y/ Z' G
/* Make 0 time normal size letters */ 1 m" h! v6 X: I4 E
settextstyle(DEFAULT_FONT,HORIZ_DIR,0); ; M3 O& _* |- @( I' U
outtextxy(10,170,"press a key"); 2 J% l& U' r4 X- H# P- `
getch(); 0 y9 S4 C" c  [. W+ `" L
setfillstyle(HATCH_FILL,YELLOW);
9 R4 c9 O2 s# V# yfloodfill(202,100,WHITE);
9 y1 P; g$ |: P% A% q9 v+ |7 c6 `7 Agetch();
9 I! E/ v( _+ k# afor(k=0;k<=500;k++)
6 G/ w6 ~. W  C- \* ]{ & A, G2 q$ z) s5 w( V( C
setcolor(3);
% D0 n: H, a& f9 x$ t% Ufor(i=0;i<=16;i++) % d! B9 X8 S. R0 D. v, S4 |* f
{
( r) \2 X5 l, V2 H+ ka=(2*PAI/16)*i+(2*PAI/180)*k;
* M6 V, y5 \" }; K9 mx=ceil(x0+48*cos(a));
$ j; l5 A7 l( q8 |5 t: m0 zy=ceil(y0+48+sin(a)*B);
; `- z9 T7 d$ a9 H. \setcolor(2); line(x0,y0,x,y); 4 o- k9 L8 }& H8 ^5 f
}
0 A+ x- r/ H. F5 vfor(j=1;j<=50;j++) ' t9 _+ P" b$ c+ N4 Z4 x/ u! C
{
) J5 ~: T1 D* Z4 @a=(2*PAI/16)*i+(2*PAI/180)*k-1; ' r+ \% ^* h; `3 b
x=ceil(x0+48*cos(a));
" m5 W; Z& t/ m0 _6 X7 jy=ceil(y0+48*sin(a)*B); ; D$ [. H4 H! Z0 O
line(x0,y0,x,y); & z" K, a+ j" G9 T, b1 N" R
} . n! A" l3 y/ a# A; Z
}
) y( F# }% ~2 }restorecrtmode();
/ L" g$ @, |- p' k. [  F6 A& J}
- N; r* C9 W% f1 U6 D* u==============================================================
0 \3 [3 a( Z% I$ ~【程序60$ m. q5 m# Y8 Q6 F0 Z
题目:画图,综合例子。
7 I8 k/ j3 ~) R" d! }1.程序分析:
7 g* r  Q* ^) w1 U& Y% _6 S2 s2.程序源代码:   E& f. v+ x. t) K" c0 O+ c3 D
#include "graphics.h"
3 S3 i0 N/ `& j! }# c2 C#define LEFT 0 % Q& s, E2 Y1 t) w# R/ [! E) T
#define TOP 0
$ `5 P2 G9 J& K$ q& Y8 D' u( a: s4 j1 u#define RIGHT 639
* V  p0 b0 l! l! z. V#define BOTTOM 479 , w/ l  q4 h- \" V: g
#define LINES 400
3 i, e7 m: O4 m  m+ s; K#define MAXCOLOR 15
+ N: o, L" Y/ b" l, ]3 p* C9 U, Pmain() 7 R& ~& N' f6 x# T5 N. U" {1 V+ w+ s
{
: w1 S3 x& ?5 }) E) @- T1 v, Lint driver,mode,error;
% C6 Z& h# H( Q2 Vint x1,y1;
8 O$ [  h1 N" f9 Zint x2,y2; ) A( W" ~) o. L) c* @2 y7 e6 n
int dx1,dy1,dx2,dy2,i=1;
/ r  m6 M* d6 A  m0 p5 Hint count=0; ) X$ F& g; r8 l% @- u/ D
int color=0;
: Z9 J/ f0 v/ S6 m4 ]" a) T) p4 gdriver=VGA; * L3 p' J) i( S- t- [! p( @* K) a
mode=VGAHI; - \' a% r- Z, m  f- B9 A
initgraph(&driver,&mode,"");
4 C! p& `8 {  ]' x. F- Dx1=x2=y1=y2=10;
! H4 v( \% ?! u5 f5 L! Odx1=dy1=2; 2 j: {; f" b0 J; k
dx2=dy2=3; , ]- _& V9 N0 B0 [  ?: P  A( ?! _
while(!kbhit()) 5 {% Q4 u$ C+ `3 n* Z' [: j# n
{
6 O  w' ~' P8 M) j7 _, L  ]line(x1,y1,x2,y2);
0 F  ]) Y1 b8 gx1+=dx1;y1+=dy1;
- Z2 K8 D& D8 [! r1 ]x2+=dx2;y2+dy2;
: I  W% `$ d# Qif(x1<=LEFT||x1>=RIGHT)
. `, h! P1 m! D! Udx1=-dx1; 2 h4 [0 L. ~4 x$ F% w. ~
if(y1<=TOP||y1>=BOTTOM) 0 @5 \8 w5 V9 M. E
dy1=-dy1; ' S4 x! @% m$ ~
if(x2<=LEFT||x2>=RIGHT)
# k& C2 i0 Z6 F3 \6 wdx2=-dx2; , l( I& S! C# y/ k& ]3 v
if(y2<=TOP||y2>=BOTTOM)
2 Y# V, @: U1 g" D9 _$ idy2=-dy2; 8 h+ y; U& x. h; G
if(++count>LINES) 4 |& s/ M5 l$ w: w5 O1 E; C( U  }
{ 2 u  p; S- q7 V8 P6 i! \- J
setcolor(color);
* {( j* B& z( i! U# ~; Xcolor=(color>=MAXCOLOR)?0:++color; 6 \- l  B2 b& b  x# z: _
} 3 I* o4 ^$ R& X5 I  @. w+ D
} ; |: T( X+ |3 [: {3 @. {3 }+ X8 P
closegraph();
/ c$ x. ^# X! {- {- \}
【程序61
3 L# q) A9 O! M+ N题目:打印出杨辉三角形(要求打印出10行如下图)
' l1 w0 c" ?6 O/ c1 L* N1.程序分析:
- ]# J; d% F! }1 m4 L) w: @- C& B1 : v) s) P, |; ]1 K. r9 p
1 1
4 i4 P7 V5 D& ?5 c& Z7 [1 _1 2 1
7 r0 p* @- F/ u* c& }1 3 3 1 2 ?+ ^& \4 C( h- r: N: q; F
1 4 6 4 1
: h* }+ R+ Y$ C# T1 5 10 10 5 1 0 k% F: }, N* ]' |6 y1 p8 S
2.程序源代码: & }* g* B$ w/ s  _7 `" g
main()
: f* g8 k' L, Z( H6 U' D{int i,j; * I/ N: Z7 e8 J1 g% P
int a[10][10]; ' ~6 x: E9 u& f- X* a5 G
printf("\n"); ) ]4 r) _7 g1 z# `
for(i=0;i<10;i++) 9 b  ]" Q! i# o4 B. B" K
{a[0]=1; ! H( Q" @* d+ q% W, R
a=1;}
% k( a  N* }; {2 S' M4 [for(i=2;i<10;i++) % h/ I) b% k  D; _' H; R1 D
for(j=1;j a[j]=a[i-1][j-1]+a[i-1][j]; & E' R2 X" v0 }) }" R* Q0 \6 \
for(i=0;i<10;i++) 3 z) ]' |! l; L' O, ~$ p* q
{for(j=0;j<=i;j++)
5 l; e* ?% w& Oprintf("]",a[j]);
, l9 ~4 ~* N. n  R+ Y2 oprintf("\n"); " a0 `$ W. B/ w; L0 q# \/ {- w
} . d1 ?! L8 w" X: m) s
} $ @7 K5 q0 g& W; a: w
==============================================================
, f) C: c& q( K0 V【程序62
& N9 `! q# M/ a题目:学习putpixel画点。
/ v" A8 t- M5 C! m: A% v  j: {* Q9 v1.程序分析: ( o' n& v2 @5 m" Q) E& I
2.程序源代码:
( o. ?* Z+ Y8 ~#include "stdio.h"
; F# F( c* i. J6 ^& A  u; P# g- p#include "graphics.h"
& o6 P) J" z  r8 X: B& a0 D+ imain() 7 I( `$ I+ j, _# A; u8 C- f
{ 4 \6 r) d; H, U& n, t
int i,j,driver=VGA,mode=VGAHI;   y% \) l4 O! H0 t+ b- U, i' W6 G
initgraph(&driver,&mode,"");
; `. L/ y% T# }  b  K; esetbkcolor(YELLOW); # ~1 P0 P, l/ z" R
for(i=50;i<=230;i+=20) : w: S" P/ W4 B$ ^8 N
for(j=50;j<=230;j++) , d8 A) e- G5 H
putpixel(i,j,1); 3 ^2 K1 w/ q& Y8 W7 g0 p6 c, |$ V
for(j=50;j<=230;j+=20) 3 s# |( g$ j5 ~4 M4 z
for(i=50;i<=230;i++) . \; r" k+ r9 E$ Y) g0 z
putpixel(i,j,1);
, Y: e  M6 [8 }2 ^: {9 e; e}
# M- y; K3 S' ^==============================================================
2 Y, d3 K& \& P+ G( F9 J( E【程序63+ f! e/ c" V% Y6 ~
题目:画椭圆ellipse
, u; r6 k, M3 T1.程序分析:
* C& u# Q( @1 n+ y2.程序源代码: 7 m, f4 g% j) Z: V
#include "stdio.h" 4 b( e; z0 x/ z3 O+ c1 J
#include "graphics.h"
6 S: i  a8 A1 r#include "conio.h" 9 Q! W- u( K1 h6 F! a
main() 9 Y4 s3 A% {. T
{   ], A! B/ G3 _* g2 E  q# b% z
int x=360,y=160,driver=VGA,mode=VGAHI;
7 _( }. m# D9 K' w+ g% Q9 R. N- \int num=20,i;
) i& ^8 a3 E7 o# t9 Pint top,bottom; " [8 T* l/ I' e
initgraph(&driver,&mode,"");
$ Y5 F3 o) i( s* i5 n1 ntop=y-30; + ^: T9 \# i+ |* y& [5 k
bottom=y-30;
0 h- p2 a, J" b1 @7 Nfor(i=0;i{ ( K* Z# {2 P5 H: |' G/ H
ellipse(250,250,0,360,top,bottom); 8 j9 ~9 {! O6 X0 X2 E; A. b
top-=5;
' ?- [# i; e0 }9 @! Sbottom+=5;
. |; l- z7 F+ O, y5 H} ' U  T) O0 h+ C- y: _& L5 P) _  N; M5 e: t
getch(); / i# ^% v; M- G
}
4 T# ~7 _4 D5 U! M/ q============================================================== 0 l* |7 L6 @- H6 P
【程序64
3 r7 Y) c& f/ D: s; U( n& r$ r题目:利用ellipse and rectangle 画图。 1 S8 }0 j. A2 p0 A' M
1.程序分析: : f  Z/ e5 Y  Y4 A# q9 B* j
2.程序源代码:
, l6 |3 n2 v) }#include "stdio.h" % Z' G% C5 F8 b- F
#include "graphics.h" / K' T" M: X4 ^/ N+ v! h
#include "conio.h"
) |' \. V/ p; e7 bmain() / D. C1 ]+ E' r+ p& Q
{ $ p" b9 `4 }2 w, j
int driver=VGA,mode=VGAHI; 1 G1 U: N2 }1 k" E$ ~8 w" W
int i,num=15,top=50; & z0 |; d# y( @! [/ L; v4 D. V
int left=20,right=50;
3 b  ~% s8 n! T& V! [7 Binitgraph(&driver,&mode,""); , R8 }( ]  R; W  B' J& ~% [  g
for(i=0;i{ 4 Q7 l# \9 a$ V
ellipse(250,250,0,360,right,left); 2 K5 X7 ~  }; M. o" `  y6 M6 C
ellipse(250,250,0,360,20,top);
- i3 i! ~0 Z7 [' z  ?! B* B* wrectangle(20-2*i,20-2*i,10*(i+2),10*(i+2));
% ]- Z! r$ [- z! g% s1 _right+=5; ! P% c  a3 I0 G) k8 ]* y
left+=5; ) `1 r9 N6 k" ?. d
top+=10;
3 y8 ~$ X: I0 e}
- j4 R* p* [, \3 w. Kgetch(); % `2 d, h, X4 Q! X* G
} 4 S* Q; @, I3 N; j8 L' X! n
============================================================== ! y" a( U# g' f
【程序65
8 L$ |# `9 F6 f题目:一个最优美的图案。
% g- }7 A$ O6 G+ U1 a1 U1.程序分析:
) J& i2 V7 q7 u2 ]* E$ j( D2.程序源代码: % D# Z2 X% ^' z# l) `. I
#include "graphics.h" 6 x' m" q: J$ }; f
#include "math.h"
5 p/ v% Q7 `5 y1 t& S" L#include "dos.h" . `( W/ b; m+ ^$ S" R; f
#include "conio.h" : N' x" d* J& s% X
#include "stdlib.h"
1 g8 {( ?1 t/ F1 T+ [#include "stdio.h" 9 n9 S$ w, e7 x( t. a
#include "stdarg.h"
3 }5 S, z9 K$ o( {#define MAXPTS 15   K: f$ c1 b5 |' _
#define PI 3.1415926 7 E+ u% O* C' j/ q5 V8 Q
struct PTS {
* }+ d: U- a: l% Hint x,y;
) ?6 W& \* m" w+ G: l}; " J+ X1 J8 h" A1 {3 I# ]
double AspectRatio=0.85; " h9 ?- e4 m  @4 |: v0 w2 P; e8 X1 b
void LineToDemo(void)
. G0 }$ [0 B' j& ~4 I9 A{ . ]& Q7 Q, l5 r2 o; b
struct viewporttype vp; - _5 j2 ]: `) ~
struct PTS points[MAXPTS];
5 Q/ C6 P& s3 U' [2 `3 {int i, j, h, w, xcenter, ycenter; ) Y" g* H- \* J
int radius, angle, step;
) r; r6 g: U4 N' T5 Xdouble rads;
( k) [: S* j% M4 l; `printf(" MoveTo / LineTo Demonstration" ); 4 C# s$ p: i- H/ Y  w' d
getviewsettings( &vp );
$ _* u5 c9 W2 @- Q$ Ch = vp.bottom - vp.top; ) U8 O' l  n2 H+ r5 E* o! P& }
w = vp.right - vp.left;
% S1 R& E6 I, Q0 D" T) bxcenter = w / 2; /* Determine the center of circle */   }* ^# i8 B1 g
ycenter = h / 2;
' ~7 B/ D9 d# T% |5 P: Lradius = (h - 30) / (AspectRatio * 2); ! L- z5 W! y4 O: W" A& D
step = 360 / MAXPTS; /* Determine # of increments */   b: H3 m! s8 N+ W# y
angle = 0; /* Begin at zero degrees */
- U/ b) e9 V7 \% y' [# S! w4 Dfor( i=0 ; irads = (double)angle * PI / 180.0; /* Convert angle to radians */
1 c7 Z+ c: G* R0 v( \8 Hpoints.x = xcenter + (int)( cos(rads) * radius ); 7 c' @- \; ]* V& L( N
points.y = ycenter - (int)( sin(rads) * radius * AspectRatio );
3 O% o9 F8 H; [" N) {9 i; b* }angle += step; /* Move to next increment */ ) ^3 z& v+ U5 m6 G. ^: @4 n+ ^" M6 j9 Y
}
4 I# C5 D( p  F! a* `circle( xcenter, ycenter, radius ); /* Draw bounding circle */
. x8 q0 J1 ^: @4 dfor( i=0 ; ifor( j=i ; jmoveto(points.x, points.y); /* Move to beginning of cord */
* z2 z& a) _# N" Nlineto(points[j].x, points[j].y); /* Draw the cord */ , Q2 K  C" ~. l2 M  W6 o. r
} } } 0 x# ]& O( Z( F3 K9 l
main()
2 M2 D# u0 G) V2 |! s& s" B+ @% k2 a{int driver,mode;
  d. ]/ G* A6 f9 a+ I6 q% a% ndriver=CGA;mode=CGAC0; $ p$ X7 A8 U* W2 ]7 F  I4 c1 w
initgraph(&driver,&mode,"");
7 _9 q* F1 Q7 S# L5 K$ u3 U  ?2 Usetcolor(3); ! D$ x# {7 c: {8 J
setbkcolor(GREEN);
1 C) R& O# N& c' ^& ZLineToDemo();} - s5 Q+ H; L! S
==============================================================
# }% {5 ]+ ]! H  H【程序66) i: `6 e3 O. x; H( R
题目:输入3个数a,b,c,按大小顺序输出。
4 ?2 V# q$ v1 F- p2 f; D1 Z% S% X1.程序分析:利用指针方法。
) x2 ^7 {" V& u5 \0 _2 U3 ^# G2.程序源代码: 3 U0 F; Y4 O8 `$ V$ n
/*pointer*/
- l0 S; X0 P% k! v0 N0 mmain() 8 f3 \% X, R: }+ @
{
: |) `+ e4 E  o8 A1 I3 }int n1,n2,n3;
% I8 T+ B* s9 W8 V/ ?& Bint *pointer1,*pointer2,*pointer3; : A  V5 S6 J' h/ n! E: k7 R3 Y
printf("please input 3 number:n1,n2,n3:");
6 G7 \2 s. ~. mscanf("%d,%d,%d",&n1,&n2,&n3);
8 m% F1 Q$ s5 l2 Tpointer1=&n1;
* Z. V9 A6 I% j% Dpointer2=&n2; ( \! B# u8 \3 N; E7 X
pointer3=&n3;
8 _: J! H! _8 o: U0 iif(n1>n2) swap(pointer1,pointer2); 2 O5 c7 Q- |/ {3 k9 p
if(n1>n3) swap(pointer1,pointer3);
& {" h! x" y% D! eif(n2>n3) swap(pointer2,pointer3); / b; X$ g/ x% O. a8 a
printf("the sorted numbers are:%d,%d,%d\n",n1,n2,n3);
# T. W3 O& l9 r4 i4 {7 D! R# G}
, |' Y/ M8 j. {0 h1 Fswap(p1,p2) 2 z! D5 O2 [0 h5 x. i$ ]! t" f* C
int *p1,*p2;
; a' b: T; f* g; C( R( C{int p; * L  D6 K# w, l0 L* @
p=*p1;*p1=*p2;*p2=p; - g( ]6 e4 v0 L8 v
} : L( E8 F& e, [  Z- D+ H/ i
==============================================================
( S, ?( a6 j. j# F6 p% t* x  u【程序67
! O$ W, V) R( G" n. j题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 . _& f" {; e" _) h1 b, o
1.程序分析:谭浩强的书中答案有问题。
+ J+ k0 p: G, f; B, |& ]+ m7 S2.程序源代码: # [5 L5 r2 A1 t: O9 P
main() 8 v$ B* ?7 }% q# \3 p, t! b
{ ( d" }5 X. A6 R" U
int number[10]; 8 [1 q* B3 h. G6 h2 e
input(number);
* F1 g6 g8 u8 u  umax_min(number);
, q( I4 ]( y; c) g: [  I5 j3 A3 Doutput(number);
0 f7 L" y; x8 w8 v; P2 \& n* f! l& t}
+ }3 I+ w0 S; k3 p9 _, }input(number) 8 F4 A1 I& g( t/ o" _, Z
int number[10]; , B7 q$ P* a* V7 u0 s) V
{int i;
5 o( K- x  ]4 Q* z/ N+ ffor(i=0;i<9;i++) ' y: R! J6 j1 i8 t# v+ r
scanf("%d,",&number);
8 T& K# B+ }* \( D5 P" M/ kscanf("%d",&number[9]); ' U8 _( G  W5 c) Y) G
}
1 V# p) o$ ^4 Z, k% f: Xmax_min(array) . u4 @9 p" I2 v4 ?9 T
int array[10];
  j. e6 T9 N* C# I* H$ v0 I{int *max,*min,k,l;
* E9 d" z9 e0 Iint *p,*arr_end; " p( ^: a2 Q: }6 R! N7 W6 M
arr_end=array+10; 6 ^  [& F' a! u- |7 |/ |4 T
max=min=array;
1 _5 }+ s2 M7 B8 j( R" S+ g- {for(p=array+1;p if(*p>*max) max=p;
, K( q+ K# y7 _7 ?/ helse if(*p<*min) min=p;
1 I% G" P: z. K5 [* n1 g" mk=*max; # U; b4 ]* k- t! L
l=*min;
* h) N, x7 ?9 n2 K  H( }*p=array[0];array[0]=l;l=*p; $ }& {3 x' c. J) m5 R0 O/ W# O
*p=array[9];array[9]=k;k=*p; 7 U, h% g" X7 a8 @8 s/ n9 d
return; % c! R0 K' H. h9 I9 h% b3 V
} + u8 ?0 X" q6 f$ D4 q4 Q' z
output(array) 7 g" z! R* d$ ~
int array[10];
& L" N5 k7 z  h' i{ int *p;
2 t! J  R1 ?* S  N0 v3 efor(p=array;p printf("%d,",*p);
. F; F5 m7 N3 e% h4 p0 `$ J' m$ Iprintf("%d\n",array[9]);
$ S' S  n# K+ [+ n* i  J} 0 k6 z/ k! b  a$ \
============================================================== $ H" V% R3 V+ Z0 l: c. F

" V: L. h2 T6 R9 }
分享到:  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 15:04 , Processed in 0.064128 second(s), 32 queries , Gzip On.

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

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

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