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

C语言经典算法50-67

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
【程序50/ v4 h( t7 J+ ~+ i3 j
题目:#include 的应用练习 4 t# D' @9 B2 X. `
1.程序分析:
& {  n# J/ n$ b2 I  J7 }! a2.程序源代码: ' w, `4 t0 n- U7 w8 q3 _
test.h 文件如下: ( S+ }7 |  `6 W
#define LAG >
4 |  {+ Z4 i* y8 ^8 b#define SMA <
& i# W  C5 `- d; U3 ^#define EQ == 9 O( T( ~+ G) s! w5 U# d7 W5 x) ?
#include "test.h" /*一个新文件50.c,包含test.h*/
0 g4 |; k* ~4 a, o0 S#include "stdio.h" % W' D2 t' \0 |1 w- [
void main() . b+ [: u/ E+ M* K1 N( C
{ int i=10; 7 o* R& x0 |, G! V# I# _
int j=20; ' t6 i# a* m8 O, P8 Q( Q+ U
if(i LAG j) 2 y8 B3 g+ J4 r7 f: J5 q7 B
printf("\40: %d larger than %d \n",i,j);
7 s7 b% A0 I) e( W3 v/ w/ p$ Delse if(i EQ j) $ i/ f3 y! W$ g5 }( K
printf("\40: %d equal to %d \n",i,j); ) D. i# K" ?" `& S
else if(i SMA j) 6 h% k, W' K2 c% t, a
printf("\40:%d smaller than %d \n",i,j); + c- Y9 Y( `0 J8 i* T- r$ w
else * L5 h* \4 w" o" o! w
printf("\40: No such value.\n");
8 }# _( |- u8 x: F7 r- y} & t3 Z* b/ Y) k! C3 F) W
【程序51
# L8 s$ u5 J! V* i7 z题目:学习使用按位与 & 6 C. _2 f2 R- ]9 w, w; F+ N9 J
1.程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1
1 Q/ G% Y) c& s* x6 D$ I& C/ w3 d4 s2.程序源代码:
( r' Z% L% ?' ]' B' ^; ?! o" v, I#include "stdio.h" : C+ w6 E- v6 x8 J0 q" b% a6 ?7 p' p, ]
main() 4 L8 ~# j9 @8 H" p* y# f# D: Z0 G! G4 b
{
1 Q6 w/ P7 v+ l' x! U2 Y! j( c: _# S/ iint a,b; ' Y9 s6 N3 ?0 ?) D! i+ l
a=077;
& ]& S6 S2 O. u/ ^0 Rb=a&3;   V' `  ]5 w5 `
printf("\40: The a & b(decimal) is %d \n",b);
0 L9 U+ W2 y; [, Vb&=7; ' T; E, j. u( D" {. i& u
printf("\40: The a & b(decimal) is %d \n",b);
" @5 m- V- U2 j" g} 4 _3 T) G3 x7 D8 z- H2 @
==============================================================
( P0 g' E3 X+ i& `4 p. o3 Z【程序52
+ P" b8 w/ i9 y- [9 A( Y8 d9 S/ i3 x, V; X7 \题目:学习使用按位或 |
# Q8 X% z* J& |% M1.程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1
" _7 k; l, a. r$ J2.程序源代码:
8 t( S0 n, \" R, I4 ~- ]+ m) ]#include "stdio.h" , r8 w$ N+ B/ G- H! Y5 i# \/ \( m
main() + V# M% z) X" B4 H
{
) N3 H( T4 j! C' |int a,b; 2 z- w- {- K2 ]6 [7 d
a=077; / b5 N2 C& N: Y0 z3 ^7 U7 q
b=a|3;
3 O/ X$ J. P: Sprintf("\40: The a & b(decimal) is %d \n",b); - S' ^. {! d4 A& C/ N8 [
b|=7; 4 A) c  i) u# f' k& d7 Z
printf("\40: The a & b(decimal) is %d \n",b); 7 F" F- B+ T1 o# G3 P. M6 u7 R6 L
} ) E3 v0 H  t+ }: _* c7 V' i) U8 B
==============================================================
+ R9 ~, |2 Z# C$ ~3 Z3 D: S$ j【程序53嵌入式信盈达企鹅要妖气呜呜吧久零纪要
. V5 o) A; N, y' u; k7 v题目:学习使用按位异或 ^
: @1 N) N! t  R1.程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0 / I2 q& ^6 w$ J0 \, o- n" ~
2.程序源代码:
3 q& L7 W+ ~' K; j# [3 c) s* O#include "stdio.h" 5 [& j6 b8 Z2 s" ?( d
main()
% }4 u: u7 s0 k/ x" Y{ 0 S- Y9 T5 I7 M1 W% H  `4 s: R
int a,b; ( x0 L2 t) M0 N3 r- d! a& S
a=077;
) @, u, P+ E0 cb=a^3;
' u& D: M7 X! H, z1 O( Fprintf("\40: The a & b(decimal) is %d \n",b);
) B. e& v0 X+ f% B  ]b^=7; 9 B0 V, V/ u+ }( B
printf("\40: The a & b(decimal) is %d \n",b); * ~6 u3 Y/ v* R; E$ ]
} 3 V& i! g. F$ l, E
==============================================================
$ _1 K3 e- e# n* n【程序54
  m- O! v# A" G. D题目:取一个整数a从右端开始的47位。
1 O* E5 g  @8 b0 w% V) r  k- `: ]程序分析:可以这样考虑:
, k2 v; C- X1 F9 Q. F; w, _9 w+ Q(1)先使a右移4位。
8 I0 o* ?8 B1 Z  b% N(2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4)
2 z( u3 D4 e  b" L8 d: N' o(3)将上面二者进行&运算。 7 i. k& }8 [5 G( M3 I
2.程序源代码:
9 J- M" V( Y$ l2 ^' ]- Zmain() + y1 C, y: m/ j
{ ' `+ r9 }5 v9 c6 k0 k
unsigned a,b,c,d;
3 R' G7 @& O! v  W% c- k( d/ a2 E/ ascanf("%o",&a); 1 m6 e- M9 D3 E3 x
b=a>>4; & b% F% X/ j& ^5 Y
c=~(~0<<4);
! @+ T. u: z% e( Z% j  T" Fd=b&c; 4 L" G. A! w  P; n
printf("%o\n%o\n",a,d);
: e  P' @; O8 Z$ ]% i. z} 8 G# }! U$ U( ]. |; @2 s
============================================================== 7 F# F3 ?4 c: H, H& J6 d
【程序559 x, w, _+ o% O( E  v/ a
题目:学习使用按位取反~
8 g% F# g( Y0 N; L$ A2 s1.程序分析:~0=1; ~1=0;
7 J' J+ P) |8 \7 E; w7 R% L2.程序源代码: ' L2 c* L1 y1 H; @
#include "stdio.h" ) T7 e+ _: `7 C, [4 S; Q, }6 W7 ]
main()
! C4 s  z' d" d/ U( v9 G- b0 T0 o; x{   j. s8 h- h+ ]( N2 K
int a,b;
/ O& V! z  L5 e0 ]5 t( a5 w% Na=234; # d* _" n8 S' z& g
b=~a; - I3 }# a5 w! I! S
printf("\40: The a's 1 complement(decimal) is %d \n",b);
% S# z5 |2 L  w4 x. Ua=~a;
  C& `; x* b* w/ g+ p; kprintf("\40: The a's 1 complement(hexidecimal) is %x \n",a);
4 z# e; _5 o! {5 t- N}
# @) A3 W6 P  p. W$ ^7 c5 N==============================================================
, H0 @: \4 A4 g, M4 _2 l/ w【程序56# Q% k* \5 r1 O* S3 r
题目:画图,学用circle画圆形。 # g, q& g6 L3 N, n# p, A
1.程序分析: * C0 M( T: {. S8 D. I8 i
2.程序源代码:
! J! o* h) T& Y2 z) L+ a6 N/*circle*/
# z8 s- n) @2 H8 C#include "graphics.h" , v& a& i5 d* |% z
main()
' G9 u" A$ |# E' G{int driver,mode,i; + Z/ ?9 w, R' i( K3 G. y3 k5 R
float j=1,k=1;
# ]% V9 e; a7 w6 i! b5 Y8 ~driver=VGA;mode=VGAHI;
$ K4 I! l# R% |8 `* ~initgraph(&driver,&mode,"");
) z4 T+ {* C% ysetbkcolor(YELLOW);
7 r( R, j" l  {& kfor(i=0;i<=25;i++) 8 H* m  M# S2 H( a- s! @
{
9 ~4 R( ]/ x# ^5 Qsetcolor(8);
% z& F0 L6 S5 D) Pcircle(310,250,k);
3 T% X+ u; A; {4 D2 A+ N8 [- ]k=k+j; / ]% }/ b) x( O) f6 z4 v" {
j=j+0.3; . W' T5 @- l! V2 Z
} ( g1 J& J( C' b* k5 n( C
}
4 f6 g9 E( G* i============================================================== 9 l- i% ~0 E7 q" j1 j6 \6 Z
【程序578 y! s! B3 p) n2 h4 v' L
题目:画图,学用line画直线。 , D) c- m$ [% R- x% {+ ^6 L* D
1.程序分析:
* y. e: r( S0 J# Q2.程序源代码: * T2 [, K! v( U+ M
#include "graphics.h" - e+ _0 p' B1 G1 l' M" N
main()
0 A$ X1 L6 W, u( |& F  B$ o7 Z4 K8 N+ }{int driver,mode,i;
: q3 c) Y  D1 J4 {  I7 f: N4 b5 I8 Sfloat x0,y0,y1,x1; ' a/ g+ e# h- e  J5 ~5 [
float j=12,k; ; q" x) e3 ]( d1 O
driver=VGA;mode=VGAHI;
! X; [* {. u2 Pinitgraph(&driver,&mode,""); - L. G- L7 s9 a) k1 K" m
setbkcolor(GREEN); 0 P+ Z* i4 q+ J) O9 F
x0=263;y0=263;y1=275;x1=275; ) d, t' U! r9 o. [
for(i=0;i<=18;i++) ) b+ a% R* d- \" J  b
{ # J: @2 Q$ }/ \  f5 |
setcolor(5); : w- F7 b: K5 a: O& ]3 \
line(x0,y0,x0,y1); 7 X  J/ g6 Q/ |- \+ Z
x0=x0-5;
2 \3 V, R1 @, q. d5 D) ay0=y0-5;
8 K/ x* [8 u7 r# u1 qx1=x1+5;
  c# P/ S; X; my1=y1+5; / `; J! {2 g7 ~2 w0 `) |
j=j+10; ) s* l8 p6 d! e+ q
} ' U  Y* S- ]4 R: O0 ?$ `, |
x0=263;y1=275;y0=263;
0 K2 d1 G7 r2 t; d  X) G! i7 [for(i=0;i<=20;i++) * l- L9 G6 ^5 ^* Q9 Y0 O
{
% C" h8 Y1 H, y7 O. X5 Qsetcolor(5); 4 \$ q  o* j% {7 A
line(x0,y0,x0,y1); + ~9 O  l" X2 v) Q) z6 E
x0=x0+5; 0 ?4 W8 K/ T# _7 C
y0=y0+5;
& W* p0 r4 ^8 r) cy1=y1-5;
! C" Z8 B6 c! L: j9 K0 D) U* e}
8 p# r; I7 I4 d6 }# i& \" e: P}
# n; R0 M6 s$ z1 c4 e5 Z==============================================================
2 \% c4 P: I0 R! W( O) r4 e+ m" N; [【程序580 l$ c! z5 {, D$ ?. L' A4 O
题目:画图,学用rectangle画方形。
: K0 L9 O9 ~, A) Z9 N: z$ E+ K1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 ; n' {' e. H8 ~5 U
2.程序源代码:
: h3 `6 I6 g  d: e0 P" J#include "graphics.h" & x! J6 d* I2 j: ?" p+ @  _
main()
8 ]4 k0 Z# K& ~6 @& Y% [{int x0,y0,y1,x1,driver,mode,i; 4 T. J: r- r$ A
driver=VGA;mode=VGAHI;
* q! m+ h: f5 x* g! }' Kinitgraph(&driver,&mode,"");
, m& k3 p$ ^; F8 P8 `+ Xsetbkcolor(YELLOW); 9 z7 t6 N( {& z6 L; `, ?5 P; G$ o
x0=263;y0=263;y1=275;x1=275;
( G/ C! {+ s0 g/ V, H3 l% \for(i=0;i<=18;i++) 5 D' q% e! b2 a% w3 S9 Y+ x
{ # g/ C5 b: [% V4 P1 M& H, o" W2 P
setcolor(1); ( B/ |4 r" c% i) h3 i) W
rectangle(x0,y0,x1,y1); 8 w1 e# q* W( q) n' k+ m! r' O, X; q
x0=x0-5;
- R/ W" k/ |) r! G( D; C8 W8 Vy0=y0-5; 3 Q1 q$ V9 V1 T5 r" I% p
x1=x1+5; # F& `3 n- `" B& T5 W7 R+ R
y1=y1+5;
5 [# B3 i! U9 p6 L! d}
0 l9 F9 x# }: H7 d: E7 f( Psettextstyle(DEFAULT_FONT,HORIZ_DIR,2); 8 {% t" X6 m* E0 i" H+ e/ ]$ o
outtextxy(150,40,"How beautiful it is!");
1 S: S, C; O8 |line(130,60,480,60);
3 o/ f9 K5 ]6 L8 e& Osetcolor(2); & R2 H( K: r( D# Y7 u
circle(269,269,137);
% H2 N) R1 [2 i+ l9 m}
# _* G( {0 p+ [0 R/ B) J) I==============================================================   U7 @+ F4 ^* ]" D3 Q
【程序59! r, Z/ u4 J; R. e; T
题目:画图,综合例子。
( U9 H7 H4 w% b! z" B. S. T1.程序分析: 0 L( C3 |- R! t! `
2.程序源代码:
: E, J1 A8 N% D0 w0 f" I. y# define PAI 3.1415926 2 U' x7 S8 f8 f6 k
# define B 0.809 5 V5 X1 y* @( c. o& s  @
# include "graphics.h" 6 H/ T- U5 k3 C% M, h
#include "math.h" + p, z# x- F+ G. k
main() * x# Y! f, |) v: J4 K$ f4 m
{ " ?# Z' b, s& T2 R
int i,j,k,x0,y0,x,y,driver,mode; - [& t0 }' O% `7 ~, f
float a; 3 V/ }7 i  q6 I3 m' e) W4 U
driver=CGA;mode=CGAC0; % R; c$ f# B; v/ s& |
initgraph(&driver,&mode,""); / \3 m' i. ~! s- L" G
setcolor(3); 0 Q( j7 q+ h; r, r
setbkcolor(GREEN); 2 m) s1 l8 {  `  W0 U8 U
x0=150;y0=100; 9 \+ |0 ?8 A' i  W; L
circle(x0,y0,10);
: E( j7 B* f2 [" q1 hcircle(x0,y0,20);
2 J5 l! D% x( a5 Vcircle(x0,y0,50); 5 q! D. P* ^3 R2 e7 q/ p
for(i=0;i<16;i++)
6 y! n6 H4 j) k2 k6 S{ % ~  K# `3 k7 R/ f/ [, i
a=(2*PAI/16)*i; ; N1 `- S! l+ ~  J. t
x=ceil(x0+48*cos(a)); 0 i8 F  f: v% A1 x; K! \+ l+ t( r. i
y=ceil(y0+48*sin(a)*B); ' L7 _- n* R2 V/ x
setcolor(2); line(x0,y0,x,y);} # t- Y$ I7 R9 N/ r$ y
setcolor(3);circle(x0,y0,60);
( k/ o8 }) @% _% Z4 O. w6 T/* Make 0 time normal size letters */ - ]. T  I6 |0 q; F
settextstyle(DEFAULT_FONT,HORIZ_DIR,0); # U6 [8 G. Y% ^0 E5 M5 U" J
outtextxy(10,170,"press a key");
3 ^& I% G* L; z6 x+ f: h7 Igetch(); ( d$ v% ^: m; ?: c) @5 u! k& J
setfillstyle(HATCH_FILL,YELLOW); & D- t6 x- j$ u* @: r* C
floodfill(202,100,WHITE);
; l* t% N7 M1 c$ Z0 h/ ^getch(); ( q( v6 P: N$ n8 y, x
for(k=0;k<=500;k++) ! B, Y, X3 d- X3 C
{ ! P; i3 l4 N6 V$ b7 |. e
setcolor(3);
. x: @: T. K* w- Lfor(i=0;i<=16;i++)
7 T8 O2 R& w9 a{ : X2 C% O  P, _5 w. X" O! ^' w
a=(2*PAI/16)*i+(2*PAI/180)*k; " E. W& H$ A" g* L1 m& h
x=ceil(x0+48*cos(a)); / ^$ i  b8 [0 o1 M5 D; t% N( m( e3 v
y=ceil(y0+48+sin(a)*B);
0 `% \! l5 y! K" g7 a3 {7 zsetcolor(2); line(x0,y0,x,y);
) W( b) v, Z  y}
2 c, y$ q+ k" G. m$ I/ d; ifor(j=1;j<=50;j++) 2 o. \% b; X" n1 x* P0 k$ l7 O0 U
{
8 v) R8 Z8 m6 V% [3 D) pa=(2*PAI/16)*i+(2*PAI/180)*k-1; 7 z& O* l: T2 m( ]2 q1 c1 w; W
x=ceil(x0+48*cos(a)); 8 f$ w3 h7 o! b
y=ceil(y0+48*sin(a)*B); / Q) ]6 N& d5 h+ c* l) t6 `
line(x0,y0,x,y); * Q4 G, ]3 L/ ~; V' M; W
}
8 p7 D' \: C0 V' U5 j, S}
' \- \9 N, `2 w) p. o1 B: @6 m, mrestorecrtmode(); - m; L/ C0 |) M( U' m: M2 D% V
}
+ K9 ?1 z) J+ }; e+ O============================================================== # h( ?. v6 ]/ N; W
【程序60
7 I- ]6 |6 G$ V题目:画图,综合例子。 0 ~" j$ ^2 U* m  K
1.程序分析:
  E( f- m7 V" u2.程序源代码: - N! O( J0 K$ i# U/ _# }0 h8 L; P% E
#include "graphics.h"
8 O6 i, P7 W' q#define LEFT 0
. K: T/ a$ `5 e4 s! [#define TOP 0
& X* b. J$ n6 A# T& \$ E0 M#define RIGHT 639 : o: y) ?; V0 I1 p% K
#define BOTTOM 479 " B8 y; X/ R, w- {& V2 z  y/ e0 G
#define LINES 400 8 V5 o5 q, O! K. u" W
#define MAXCOLOR 15
5 \- R$ z3 K- V8 Wmain()
5 K! a% d% C! `" |! `9 r1 |8 K{
  z0 s6 ?. K. D& G! q, O5 q, ~7 M9 aint driver,mode,error;
" e) z! ^% Y. A: K+ K  R+ Jint x1,y1; % U8 z! c' T3 q" K; t: k
int x2,y2;
: A4 @9 T5 G* ]" `% |0 o. Gint dx1,dy1,dx2,dy2,i=1; 2 l/ _2 D/ {& E2 b) N% l# ]
int count=0; " v  |% {6 K, d1 p: S% Z
int color=0; ' X3 W5 F  i9 b1 ], k$ s5 Q/ ^
driver=VGA;
& I3 a  ^( X4 H/ g$ ^mode=VGAHI;
" u& N( ]: ^3 t8 K+ jinitgraph(&driver,&mode,"");
% T" w8 q$ f( g# d  jx1=x2=y1=y2=10; + U0 y6 i: m: X* Q( j
dx1=dy1=2; 6 {+ n% Y0 @/ ]) D5 P
dx2=dy2=3; 2 K9 y! C, b; x) v
while(!kbhit())
& ]6 A/ K# c; ?$ L2 x, g5 ]{
. Q: P. v2 O% G6 Cline(x1,y1,x2,y2); ( D' l$ A. F3 ]6 x
x1+=dx1;y1+=dy1;
9 Y8 F( J3 p; J/ r1 Xx2+=dx2;y2+dy2;
8 {6 U9 h$ A3 p6 s/ W* yif(x1<=LEFT||x1>=RIGHT)
2 o0 I6 b# e8 r; q0 T) G' Wdx1=-dx1;
" L" o5 ]7 Y, O5 R7 K. Rif(y1<=TOP||y1>=BOTTOM) % o8 R+ N* r: M) p5 ?% K
dy1=-dy1;
# O) V! i5 B$ C" ]0 @. Aif(x2<=LEFT||x2>=RIGHT) 0 e  H! S$ e1 _- M; ~3 [
dx2=-dx2; " h, @8 U# a+ p9 }% `# Z! b
if(y2<=TOP||y2>=BOTTOM)
1 ?, d! ~1 S9 u0 O# K+ ~3 {dy2=-dy2; " M& j8 c* Y+ U$ U4 a
if(++count>LINES) ' ~. C' k4 z* T) T
{ 0 b# w1 C% `, I& r* G/ f
setcolor(color);
: K* O) |% ~  \2 fcolor=(color>=MAXCOLOR)?0:++color;
- U) ^- C% t2 ]# X& U( o}
4 f9 L4 k1 l7 A/ N7 H3 ~! _- p} ' x0 G, H7 n6 Y1 _" u) E* q
closegraph();
3 `/ Z! _- a9 f}
【程序61
/ j& x& w* A* y/ D2 ?题目:打印出杨辉三角形(要求打印出10行如下图) $ b5 L/ U/ S! ~: R* l6 M
1.程序分析: % M- b$ p4 [- F: a
1
7 ~8 ~* y. q: d0 v1 1
7 P9 ~; f3 @0 V3 t1 2 1
( O4 }5 a' |$ o1 s1 3 3 1 8 y2 g9 M/ W. B' A
1 4 6 4 1
/ F2 U4 x# f7 R0 U0 Q# u1 5 10 10 5 1 0 ^; q8 n: l0 ]3 t' B
2.程序源代码: 6 x8 Z- p" v) I5 J" d9 y- y0 ~
main()
' U) n% N6 n# J{int i,j; $ s" ^; _: l: ?0 m: j4 k- o& h
int a[10][10]; 5 Q" i4 O! @( |# H  u7 q1 t9 i9 u
printf("\n"); 2 L/ q' h0 V) i; H3 S  _7 g
for(i=0;i<10;i++)
5 u9 X. V* ~0 U; K{a[0]=1; , h8 Y1 v& U$ b( Z' P
a=1;} 0 U/ C5 J! U  P; R9 n7 W: ^5 l
for(i=2;i<10;i++)
6 d) F9 v. h% ~! i  s, hfor(j=1;j a[j]=a[i-1][j-1]+a[i-1][j]; ; q$ |( G8 _: l  K' \7 T" ^
for(i=0;i<10;i++)
' I) Z0 X0 Q$ G2 d8 ~/ e5 h{for(j=0;j<=i;j++) / O* c0 V- c" `2 s- P, A& k) ]  D, C! t
printf("]",a[j]);
4 D! r; F3 D3 U8 Z' |printf("\n"); . j# ^! S" z0 S- P4 p
} ( V5 {, v$ }9 f$ \# Y$ |% y
}
9 }$ i! v! h/ Y' d0 {==============================================================
- d5 D5 B, m7 a8 f5 u( n1 A/ U* b【程序62
- L+ i  M2 E% t, Q' y题目:学习putpixel画点。
7 `, o( r" ~- i7 _+ W) R* E1.程序分析: $ B' A3 C. r4 k  u5 n, i: O
2.程序源代码:
/ s/ P" `5 h- i+ [& v. l#include "stdio.h"
3 d$ Z- X' W  v" U#include "graphics.h"
* }, v7 `$ _- s7 vmain()
% Y3 A) A+ v$ l1 i{
/ M' w* `, v" n4 p8 Hint i,j,driver=VGA,mode=VGAHI; , w0 ~  t7 i. K' Y/ l% c
initgraph(&driver,&mode,"");
- s4 o) G. T" I4 j" asetbkcolor(YELLOW);
! ^( ]0 X9 ?+ H- z8 |( I" }  rfor(i=50;i<=230;i+=20) . p2 J( U+ c1 t9 m. L" y/ k2 B
for(j=50;j<=230;j++)
' ~7 d% D( ~. Oputpixel(i,j,1);
% _) f& }8 R+ |  J8 Qfor(j=50;j<=230;j+=20) ! R. I0 S3 A  }; w6 ?2 B4 r2 h4 z
for(i=50;i<=230;i++) ! j' }. i4 M0 g' r. Y7 @8 D" B9 v
putpixel(i,j,1); 7 }  U! n1 U% d- h& V) }9 @# F$ r
} 1 H" G* W/ X* K2 J: H, z  i) T
============================================================== * O, Q$ n( U. q! `' E' ]
【程序63
5 ~. q2 z4 W9 d- ]题目:画椭圆ellipse
7 x( f- T* v; u1.程序分析:
+ q8 G8 t- N0 k6 F2 v$ c- s2.程序源代码:
$ t0 A8 @  \7 a6 y$ R#include "stdio.h" % p8 J# v# A5 I) c# W' Y
#include "graphics.h" 4 y% s! \  @( `
#include "conio.h" 0 c: G' \' l' n
main() , m, Y) T& r% A3 P: `0 E
{ , {" \. J, c' N% {
int x=360,y=160,driver=VGA,mode=VGAHI;
# g) X, |$ Z+ Yint num=20,i; 7 B, ^% }; @/ N& V( u
int top,bottom; + T6 Z; d9 Y+ l) N9 c2 P# g. }! M
initgraph(&driver,&mode,"");
4 n" W3 D' }% h% l6 xtop=y-30; ) s6 N) L4 a; }% \9 o! E
bottom=y-30; ' f2 W( l  {4 r8 e$ k
for(i=0;i{
+ l% i" E, o, rellipse(250,250,0,360,top,bottom); 8 m4 B1 q, R* `3 E2 y9 b% z
top-=5; ; |; O" J- a  E0 |. t6 N: {# Z
bottom+=5;
$ b7 [9 R( y) ^. H: u) f}
9 I( ?6 ~- e8 |getch(); : N: i8 W3 U3 O2 B2 P& e  z
}
: j# v! I$ C- r==============================================================
, k, w/ n+ ^0 ], u/ G【程序64
3 t: o: O' a% T5 [/ d3 u题目:利用ellipse and rectangle 画图。 : K( {% \( z) Z4 Y
1.程序分析:
3 `5 M+ \* b0 f" [9 N! l2 `. Y8 X2.程序源代码: ( A$ Z" b4 |. \* ?7 _/ b
#include "stdio.h"
' m/ N, ], N8 N2 X; K7 k#include "graphics.h"
, o. }, [: Q, V' Q8 ^% I' i#include "conio.h"
9 i+ J* f( X* Z! i( e& Z6 Tmain()
; {0 o) _! B1 z& O2 e; E8 w# q{ , q- I, Y( p" C! x
int driver=VGA,mode=VGAHI; ; @6 N4 f3 D! `# ?* f+ j
int i,num=15,top=50;
! ?8 q( v- u$ @7 M: K, ]8 Mint left=20,right=50;
6 n/ ~/ w1 h6 P: Winitgraph(&driver,&mode,"");
2 B% g4 [; A  L, q0 y! ?9 V) L2 Rfor(i=0;i{ 6 c% X+ N# [8 n9 v  r
ellipse(250,250,0,360,right,left);
5 j. C/ r; u$ |/ j" A: _$ gellipse(250,250,0,360,20,top); 6 T" z: m! Y2 c7 X5 m: z. `
rectangle(20-2*i,20-2*i,10*(i+2),10*(i+2)); 1 m9 n7 T$ j4 k! n
right+=5; * }; E; }. i, Q
left+=5;
" E+ k8 Q* P- ]! Dtop+=10; 4 M( e6 F8 W: a
}
. S6 [1 s0 S4 ?1 Kgetch(); + E5 B% x" G  }( ^6 |% e" M! t0 t
}
/ |. |  _3 a) ?% T4 t==============================================================
) S  }5 X9 \" a) E4 d( c1 y【程序650 l) p# q( z& @& {* ]3 j& M3 Q2 k
题目:一个最优美的图案。 ( g7 T3 P5 Z( M' Y1 u0 G5 o
1.程序分析: $ o; I' Z6 v3 Z- D
2.程序源代码: ; o+ g% E+ X) }/ y2 ]+ J" u
#include "graphics.h" % g9 L; C" _& }9 K( H$ k: Q
#include "math.h"
0 [) s8 o( {! k& g* Y* Q#include "dos.h" 2 ^3 g/ h, ?" i9 s/ L
#include "conio.h"
  P, u( R) F! M$ D0 a#include "stdlib.h"
% ~- D9 t* x+ h: o+ S. s#include "stdio.h" : Y! d7 Y2 P. B; o, f, f, L0 ]
#include "stdarg.h" ' A$ j7 ]9 r8 W
#define MAXPTS 15 2 x/ T9 X+ w7 H' D
#define PI 3.1415926 $ H$ k: B& a& x$ m+ w$ e
struct PTS {
' d+ _$ K) L; G& K* S: Z0 w) qint x,y;
, ]$ X. w  K) |1 c2 ]- c/ c+ f8 K7 F}; ; \5 R+ @( [+ S' i1 Y" X
double AspectRatio=0.85;
/ ]: _7 z6 s' @, n& ^void LineToDemo(void)
2 l1 X. h  ?4 y: o  H{
2 o3 n2 X& E7 |8 q: O3 d2 d. Gstruct viewporttype vp; ; q: V8 n4 F1 R
struct PTS points[MAXPTS];
: f" d& a" U% r3 e$ n! Gint i, j, h, w, xcenter, ycenter; ( [9 P: q( L" x7 o2 N% Y
int radius, angle, step; % Q3 x$ R  P! q9 B8 x; b; f# t
double rads;
. Y% A/ E6 g! U( z8 x/ Xprintf(" MoveTo / LineTo Demonstration" ); 2 q& V9 H) L1 ]3 u
getviewsettings( &vp );
. k) F9 s+ g2 o! m3 Th = vp.bottom - vp.top; % j: ~% s! d, @4 N# u  o" v
w = vp.right - vp.left;
) Z+ n- H( {2 ?7 r0 A8 X5 Hxcenter = w / 2; /* Determine the center of circle */
9 M& S6 D' X$ H" A" eycenter = h / 2;
/ ]5 m! |5 D4 F5 Z+ yradius = (h - 30) / (AspectRatio * 2);
. H, o5 V& D: ^1 i! a' D! qstep = 360 / MAXPTS; /* Determine # of increments */
" ~; \8 y8 j# ]7 Oangle = 0; /* Begin at zero degrees */ " |+ h4 X9 u" _7 S$ P
for( i=0 ; irads = (double)angle * PI / 180.0; /* Convert angle to radians */ + I% H  k6 R  q7 u8 S
points.x = xcenter + (int)( cos(rads) * radius ); 4 I. N1 N0 r* L0 S# p0 v. s3 Y0 a
points.y = ycenter - (int)( sin(rads) * radius * AspectRatio );
- y2 D# C% i& F+ a  A2 Bangle += step; /* Move to next increment */
+ j1 `7 V6 ?  o- Q7 D6 B}
* J6 ~( l; R: [. a7 Q: f# Z- ccircle( xcenter, ycenter, radius ); /* Draw bounding circle */
# l/ M1 v" K& p+ K6 mfor( i=0 ; ifor( j=i ; jmoveto(points.x, points.y); /* Move to beginning of cord */ ! d1 `9 ~- }8 E$ u
lineto(points[j].x, points[j].y); /* Draw the cord */ ' I9 f% O% v  y5 N5 [; n
} } }
, d8 L# X7 g. U4 |main() ( O# _6 c4 \1 Z8 w* r  U
{int driver,mode; * ~2 z; C( c; u; `0 W! U- B
driver=CGA;mode=CGAC0; $ V& Z# U- L* z$ k* y( |
initgraph(&driver,&mode,""); % |- Q' U5 y- Z: X! P
setcolor(3);
: u+ Y# _8 O* E0 }( A8 G; r( a2 msetbkcolor(GREEN); 1 R. }: `6 E7 d
LineToDemo();}
) _8 Y# t: ]8 ]==============================================================
1 P! T6 }: |  E6 l0 y3 F6 q6 d【程序66
; _9 z# i0 ~. ~& j/ J题目:输入3个数a,b,c,按大小顺序输出。 ' s# L" P% g" z8 Y
1.程序分析:利用指针方法。
: {0 I2 E' {( p" P2.程序源代码:
' ^! {3 {2 _6 ^/*pointer*/ # K" W$ R  E- ^# X1 j
main()
  X$ G, f" o5 T( D{ ( H# k, a  |0 C; k, y# A
int n1,n2,n3; * r! I5 U& m3 h( `2 b7 N" [
int *pointer1,*pointer2,*pointer3; & ~5 ~. u. g/ P8 @5 ~: O
printf("please input 3 number:n1,n2,n3:");
. j( K' O9 Q- qscanf("%d,%d,%d",&n1,&n2,&n3); ) ]+ a) S* ?$ b
pointer1=&n1;
) N  Q: b' N, \pointer2=&n2;
/ \/ K1 x0 ]8 jpointer3=&n3;
8 w* ~( ?0 y# V: ?if(n1>n2) swap(pointer1,pointer2); ; B/ i8 h2 |* y! \4 ]+ w5 I
if(n1>n3) swap(pointer1,pointer3); + d- T% \0 o7 x; K, y
if(n2>n3) swap(pointer2,pointer3);
4 x  g: l2 i1 h3 c% M3 ]' d' g; Mprintf("the sorted numbers are:%d,%d,%d\n",n1,n2,n3); 2 O$ {/ v8 X4 E
}
/ g/ r+ h3 Q4 f" ?" h6 jswap(p1,p2)
4 s! {) A5 M+ c9 Eint *p1,*p2;
, U9 V+ K) f0 {! \( x- h{int p;
3 i7 W- q. c. J6 T9 F4 t: zp=*p1;*p1=*p2;*p2=p; ! v% j( L% H; U" e) [, l9 j* i: {
}
+ H& Q3 {0 e2 ?! c1 x==============================================================
# W' U$ X' I1 p7 g7 M" r! b- F【程序67
: @1 ]) B. Y% x0 d* K8 ?题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 $ H- |/ V! b. g) t5 ~9 T. Z; ]
1.程序分析:谭浩强的书中答案有问题。
$ a* Q* V$ ]  s* F7 N1 P2.程序源代码: . a9 D* T0 i2 q: Z! |) _: {' }
main() : u- w7 ~# v) b0 c" D
{
) Z! z3 x$ @+ V* Q0 j- rint number[10]; & `: O  D3 z5 G8 }% ]
input(number); # A2 X$ B  |1 C5 P
max_min(number);
9 L1 U) d  d; r! ]output(number); . E+ x8 }. o0 i; U6 P4 {
}
4 \- S  E2 g8 @$ Tinput(number) # V1 O2 W& F  x! H! q" a6 N
int number[10]; 7 s/ i" ?; y; X/ D. V
{int i; ' x! Q  ]4 F& _3 c3 z( Z
for(i=0;i<9;i++) ; N% O. _* N# f4 m5 N, u
scanf("%d,",&number);
& r- P$ e* J2 [8 O+ ~+ T( \scanf("%d",&number[9]);
6 N0 o6 a' v/ M& {! d% k4 _} , c) z, g( ]; e! [
max_min(array)
3 ]& o9 i% x/ F- o& pint array[10]; 0 Y+ w* j1 c0 t. m- r, ~; K
{int *max,*min,k,l; + {3 F% [2 W% I/ M) j, T+ ]8 q
int *p,*arr_end;
  f2 z5 k: ]8 n+ R9 w6 B4 O  |7 _arr_end=array+10;
' Z" |" u& t; j+ L4 P0 i, i9 S! vmax=min=array; ( d$ i9 d/ N# O- w: e
for(p=array+1;p if(*p>*max) max=p;
8 Q3 u# n& q# Yelse if(*p<*min) min=p; ( l1 Z6 W" E1 j5 J8 u/ |" [
k=*max; . O# V  X+ b/ j5 d5 g' r1 c1 I5 A
l=*min; , S( M( H) x) U! V" V  M
*p=array[0];array[0]=l;l=*p; 7 M3 d/ b& U& J( U
*p=array[9];array[9]=k;k=*p; & `3 Y4 w; x% a5 U  D
return; ; a6 O, V! J3 e; l/ I8 w/ H
}
8 ~+ Q$ _. d& g4 ^, y  ?output(array)
" ^7 Y6 x' ]' U  `2 U+ r; Bint array[10];
5 s2 u8 D3 M! m% f, S$ n' F{ int *p;
) s+ y; D" B! T3 A- N, V2 mfor(p=array;p printf("%d,",*p);
' Z6 e' p$ S. g2 Y0 zprintf("%d\n",array[9]);
) _% B" C1 @5 K; A, K} ; Q2 k7 J4 D! F( N; ?+ I" U" P
============================================================== 4 s' ]% P# n/ X
! ?  L& ^7 V: @$ ^, I1 Q. }& c

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-4 16:45 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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