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

C语言经典算法50-67

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
【程序50
3 L- k6 h" [# Z! @3 k: `' }题目:#include 的应用练习
3 j5 i. Y& K% g, {9 r; z1.程序分析: : t7 x, P; B7 C
2.程序源代码: # x' x  m. q, P9 F% O% g5 G
test.h 文件如下:
7 i- w3 H6 M: P/ f; o#define LAG >
5 G9 I' K% S2 O- r#define SMA < 8 P1 x9 s' n. l0 w/ F4 S0 o
#define EQ == ' G2 T  w: U1 ^  t7 h6 r
#include "test.h" /*一个新文件50.c,包含test.h*/
. L5 j  l- ?" G- [) F#include "stdio.h" # }# J" Q! G% ]5 K+ F
void main()
6 P% S9 h, F1 E4 e9 H) @1 f# r{ int i=10; 4 F# ~- |+ r) S/ [$ o
int j=20; & U! y0 J9 s6 C7 Y" E: R7 W6 h+ I2 s( M
if(i LAG j) ! M# D  y9 P5 P7 h: q+ r
printf("\40: %d larger than %d \n",i,j);
5 ~  a, m: t7 a% B, X$ E& w$ melse if(i EQ j)
  _- e, |5 R& xprintf("\40: %d equal to %d \n",i,j); . ^3 ?) A9 ?* _
else if(i SMA j) 3 {9 w2 M8 K$ u/ a9 [- o+ A
printf("\40:%d smaller than %d \n",i,j);
; e. S/ P: I' N1 g2 C) d  Relse
9 r6 V" u: U6 [  sprintf("\40: No such value.\n");
2 |+ N4 B! q! f/ }2 O. B}
( C1 E5 G8 f4 n4 j【程序517 j8 S+ `, U$ P/ n) R
题目:学习使用按位与 &
* @3 R- t6 U( R( N7 T. ^1.程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1 5 f; ]4 v5 {, k
2.程序源代码:   z$ R' C' [2 `$ |
#include "stdio.h"
1 C; v7 w, |. q' d' K, [main()
* K& U& |6 Y- m0 z4 P" r+ x* ^/ `{
% t7 L4 ^6 Z( x0 k& x  s9 s: [int a,b; + [! ~; q) X9 ~3 m, P4 u
a=077;
% V+ ~' j! V% _2 l& xb=a&3; & d% S) ^1 a4 L  j  s8 h; s
printf("\40: The a & b(decimal) is %d \n",b);
2 f# q% Q( E8 N- J2 s* X7 Nb&=7;
1 B' a6 ^& h8 J  ^- y3 U( fprintf("\40: The a & b(decimal) is %d \n",b); 9 V1 W5 z2 E; b: K5 f" A( }+ N  t3 [
} - a; T3 a! \& Q
============================================================== $ V' {# f) \, o* f9 H, n
【程序52: O; w0 |  v: m- f" X9 h
题目:学习使用按位或 |
1 A# \! O) u% s7 A1.程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1 / F, K+ E/ ?1 N- ?
2.程序源代码: , Z/ l# X- \( w6 z: S1 K
#include "stdio.h"   C+ t+ `- k/ b$ T) z* ^+ j! v( P" z5 Q
main() : w: ]- q2 J/ @% q- W
{ : @( G) e6 _7 K) |$ Q$ ?
int a,b; 0 r- ]/ T3 y$ f! m; Q  q
a=077;
- }4 G4 o: a' |! d5 L* eb=a|3;
3 P, q$ \. x+ Mprintf("\40: The a & b(decimal) is %d \n",b); 0 P' c7 G. A, P4 W+ p) O/ o$ b' c
b|=7;
7 M! g2 m' S4 f3 E4 i7 Cprintf("\40: The a & b(decimal) is %d \n",b);
, O, w: n* S" z- b  s}
+ f6 s  I, h& a1 i7 `============================================================== ' ]0 f, L3 z( l4 T. @
【程序53嵌入式信盈达企鹅要妖气呜呜吧久零纪要
" d& p) }) i6 _& W题目:学习使用按位异或 ^ + S1 n0 U# a7 I, Z+ j
1.程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0
( f, j% h7 W6 ~0 n' N2.程序源代码: 7 v% f9 i/ {; e" Y( t2 n# i0 w/ I, h+ u
#include "stdio.h"
: a9 _0 Q# m$ }! y0 F4 Vmain() . L* w6 z% C: {* z3 v
{
, z$ Z/ N: x9 b9 lint a,b; 0 D- R8 b" U/ B! Z* T* \1 J7 \
a=077;
2 g; O" B1 E; S7 jb=a^3;
  a6 Z) k/ l% _printf("\40: The a & b(decimal) is %d \n",b); ; f4 Y+ H- C* T+ z% _/ ]( |) H* W& j
b^=7; 5 Y  H2 D( `/ T1 I: x) J
printf("\40: The a & b(decimal) is %d \n",b); + P, @# Z. }2 [: `3 c
}
6 K9 A9 J0 L, J$ b( }: z* b============================================================== ( O! ^) w# \& G# b" J1 e
【程序54  R' |  m% c- J8 J! x7 F" g% q  S# Y
题目:取一个整数a从右端开始的47位。
! ]6 k* D; |, @1 M. n6 ^程序分析:可以这样考虑: % ^4 p% ^* R2 c
(1)先使a右移4位。
2 L0 ^" m! W, Z(2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4) ( X& ^2 W: O( Z$ j: M
(3)将上面二者进行&运算。
/ e8 S4 f& y8 K5 X5 _2.程序源代码:
: r. D5 u% _) z% A. hmain()
, p% `! r  |, w* w  `2 n) v' j{
. t+ ?7 t- g% Z, f, wunsigned a,b,c,d;
( F* f' b" t  F, r8 L0 ~: _scanf("%o",&a);
" x- K, z0 ]9 K6 `, v5 {$ @b=a>>4;
# `, g. l0 l5 R; pc=~(~0<<4);
2 F/ D5 p7 Z. z. P# ?/ E; |d=b&c;
! S4 l6 u( Z5 f. k2 Z" Tprintf("%o\n%o\n",a,d);
: q$ H1 k1 K( P' ?( f, u& @0 Q- t}
0 f8 F- K2 R0 S$ x; O5 |============================================================== " e" n6 l0 a5 A1 b; R
【程序55
2 b. l5 N  [1 ^9 u+ g7 `; T题目:学习使用按位取反~) `' s8 u9 {! L5 B. ^/ D
1.程序分析:~0=1; ~1=0; % L5 D* `. q. s/ S% ?. i- ]
2.程序源代码: ! @* o, i, Q1 M5 \$ v
#include "stdio.h"
. V# y! C: f* n0 Fmain() ( u% `9 N& C4 T, T
{ . K7 K) r3 _2 ^2 v7 F' ~/ Y
int a,b;
. o+ a2 K+ [6 t8 A. k, G7 R+ Ua=234; 7 }/ [8 G& @8 C  k# N( B: J+ k
b=~a;
3 a; d% {$ w0 Fprintf("\40: The a's 1 complement(decimal) is %d \n",b); ) B$ o6 l# J. \- Z
a=~a;
* n/ R4 A# J+ N( Z. bprintf("\40: The a's 1 complement(hexidecimal) is %x \n",a); ! F$ j& {- k+ X( _4 A, X% {
} ) I; Z0 V- K8 Z& m9 g% F. F
============================================================== & m, X: l, R% v  p
【程序56
/ l: W% d/ p" q& H题目:画图,学用circle画圆形。 / L) E) y+ U$ f9 L7 z
1.程序分析:
0 e5 L1 R) O; o7 N1 j2.程序源代码:
  n% r0 j7 q3 z: _2 C, D( f" C/*circle*/
+ o- F$ ?3 z/ J#include "graphics.h"
  V- u. a( Y) y: ^main() ( Q' C7 b2 Z9 G9 h2 N/ @! T
{int driver,mode,i;
9 P  ?) j8 z8 D& {$ @float j=1,k=1;
! q- P! e0 @( L' @' d' fdriver=VGA;mode=VGAHI;
. |2 `# [) |0 D' k! Minitgraph(&driver,&mode,""); 9 B7 h' ^5 A  A5 B; O4 |
setbkcolor(YELLOW);
- H7 P' t  O' P/ kfor(i=0;i<=25;i++)
! |! W* F4 d$ _7 Q( y1 Y{ ! T0 M: Y5 w* I7 L$ U4 a
setcolor(8); - d& Y) {$ J2 ?( w7 |
circle(310,250,k); & y; k* [# m9 o3 _2 `. b) }) C
k=k+j; + B! u+ E5 g( i0 H; X
j=j+0.3;
2 V+ `* W3 o" m1 y, x6 e" {}
: S2 {( z5 @( v& H0 k# h} 7 J' p0 y, E' v$ N" t6 ]4 ]5 b
============================================================== ' M* K5 F2 e% e  ^( i
【程序57  r; c, \+ F; B
题目:画图,学用line画直线。
: F  @% M) e. x6 i% E+ Z1.程序分析: + J. R, ?/ Q( G) L- m1 q
2.程序源代码:
; |/ L# J. p8 |! M+ Q. s" y#include "graphics.h" 4 A, [" x' I0 L
main()
0 ~7 T' s0 @2 I3 }, U3 V{int driver,mode,i; ' T1 J% N0 E" I7 H# ~" }
float x0,y0,y1,x1;
+ k9 H1 g3 u  U3 S: bfloat j=12,k;
& W# U$ z' H5 F: t( O3 g" G7 J# Vdriver=VGA;mode=VGAHI;
$ x! f3 D1 j6 C+ a/ H3 R- p* ainitgraph(&driver,&mode,""); * `7 y) g3 s1 O, A+ L
setbkcolor(GREEN); : b' x8 \; k% ^4 v
x0=263;y0=263;y1=275;x1=275;
% a' h: x5 u. j3 m# E( \for(i=0;i<=18;i++) + p' q4 Q' p9 |! e* L( b
{
! A. n2 z' k8 [! k# U- u5 rsetcolor(5);
" O. ~" a$ b# n- U+ i  ?, f7 Vline(x0,y0,x0,y1); 6 Q1 T7 S" o7 v2 j4 ~
x0=x0-5; , r2 C6 J& [7 a
y0=y0-5;
: s7 p$ K* \, `x1=x1+5;
& e! k/ n" W3 t3 ^" W: }% @! O! Sy1=y1+5;
8 a7 j8 x( M! v, m  d) h4 Q0 @j=j+10; * a# P- u. p! l0 C% G  D3 i
} 3 `+ Y+ c  U. S& T8 y/ _
x0=263;y1=275;y0=263; & `/ t; d+ K+ P: M* ?
for(i=0;i<=20;i++)
7 f) C; y" V& I0 t. e$ \2 T2 |{ $ v$ E" |5 }7 w4 a8 y
setcolor(5); " u# G* p. g4 L$ X+ G
line(x0,y0,x0,y1); + v3 d2 v. j3 ?
x0=x0+5; 1 P- |; D) g% K! S& N
y0=y0+5; 3 L2 M& g0 \5 ?( A( @2 N
y1=y1-5; $ B& L% i9 _& z! j) _/ C; p/ |
} 9 A- {( \8 I6 B8 F$ G& [
}
) `4 n2 L# i& }% E$ f==============================================================
; n8 E: r3 A& s3 O, y1 A【程序586 I3 T4 e) m  M8 [
题目:画图,学用rectangle画方形。
& {" F6 K4 V& K% v9 I( p1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
; C6 b# |8 u, s+ ^' }2 I. `2 D2.程序源代码:
7 h0 a. w$ k) E#include "graphics.h"
9 j" ]' z1 m7 z9 U# v" H3 Z9 ]$ @main()
; R6 F7 M  f" H{int x0,y0,y1,x1,driver,mode,i;
) o$ I' h# S. o7 n7 c6 w; sdriver=VGA;mode=VGAHI;
9 Q8 h8 B4 s2 H2 s! b4 Winitgraph(&driver,&mode,"");   x; U- t6 q3 c! Q# N( e: v  G- |
setbkcolor(YELLOW);
: l$ ~! l+ L' }3 ^0 D& C6 Lx0=263;y0=263;y1=275;x1=275; ( W8 O  m3 t! m  z
for(i=0;i<=18;i++)
- f: w: E. ~; e; Q1 ^2 L+ E6 w{ ; j1 r  t1 ?- B% w- g
setcolor(1);
8 Q3 r- G& L' a: srectangle(x0,y0,x1,y1); 7 ^( f) \6 X0 A# i0 G
x0=x0-5; " U% l3 G3 e; A' v, e* B
y0=y0-5;
$ n  Z" i3 H+ b3 ~x1=x1+5; ) @0 B  e( b, _* R% u( T
y1=y1+5;
& P* M+ }5 B& o}
% R) `) P; @: e; A. _) {- Dsettextstyle(DEFAULT_FONT,HORIZ_DIR,2);
( k8 g5 J: S. y. @6 couttextxy(150,40,"How beautiful it is!");
2 g% Q3 o5 v' F% G% Xline(130,60,480,60);
3 Y2 e' S, B* z$ ^setcolor(2);
+ i5 B1 H) t, |1 P9 W* ucircle(269,269,137);
( n! {7 w9 k. N# O; w} 5 b% J( n" v8 N7 X; p; {' ^- \4 O
==============================================================
+ t$ z- F- Q  B, O, x$ k# U【程序59
# m3 y4 \/ l% P9 a* w- Z+ U/ z8 o4 [题目:画图,综合例子。
' Q, [; C; q8 V% |+ F1.程序分析:
: q" b9 e7 z, ?, k* T2.程序源代码:
, V5 G" A. k3 Y3 S# D* G; U# define PAI 3.1415926 ! l5 _& H# z5 T- m, i
# define B 0.809
! {6 m$ h1 Z) i1 |& X& o; }: C# include "graphics.h"
6 E- B; m) b" t#include "math.h"
% l6 \5 |# H2 L' omain()
6 ]( ?/ c0 U$ `- \' k. Q, e6 p% _% }{
: P- T; f* L: ^int i,j,k,x0,y0,x,y,driver,mode; * d) t; j, p% g$ ?* p
float a;
9 f% r. p. u- @: i! W  l- ~/ Qdriver=CGA;mode=CGAC0; : U5 w# o4 c. z+ q$ I
initgraph(&driver,&mode,"");
& Z3 E8 M( u( ~) L' x" esetcolor(3); , a. o; Y% t0 T* i
setbkcolor(GREEN); 8 C; J/ U" B6 A- g, i
x0=150;y0=100; % T- U" i9 q+ z: n* V  n
circle(x0,y0,10);
9 H# ]6 G/ n& {4 `! bcircle(x0,y0,20);
& H" ~- j* S8 }& O" q8 m4 ~: J+ Xcircle(x0,y0,50);
4 k' R3 \0 z, T: O/ G" m" }for(i=0;i<16;i++)
8 p; X" r! Y9 k$ b% ^9 s, U) L# B{
1 h1 a9 K& @% q) u. D' ea=(2*PAI/16)*i; , f) e* Q) q7 L  l$ y) D
x=ceil(x0+48*cos(a));
/ K! S( [+ B1 ?6 \y=ceil(y0+48*sin(a)*B); - x$ T0 L$ _9 D1 ?% U! z& w
setcolor(2); line(x0,y0,x,y);}
! y! P1 G! `" }6 ?setcolor(3);circle(x0,y0,60); . o7 d5 T' }, a& E+ i
/* Make 0 time normal size letters */ 8 J- _; }0 L5 ]# G
settextstyle(DEFAULT_FONT,HORIZ_DIR,0); : D9 o5 m! e5 Q6 n' {7 T  P) X! K
outtextxy(10,170,"press a key"); ) ?! h: [( Q9 g/ R7 X- F
getch();
; B6 V% y" m0 ?. j6 Psetfillstyle(HATCH_FILL,YELLOW);
1 f6 d0 j3 B) s, r# jfloodfill(202,100,WHITE);   p  f# e$ W. z& E' [
getch();
" N  l& @0 j$ Q( n" Nfor(k=0;k<=500;k++)
) J9 }  j+ D9 v* B* @3 k* }/ A0 m{
: H' Q" z" H9 U  f4 k: t- Rsetcolor(3); & G5 N, Z; w) [* Q% j
for(i=0;i<=16;i++) ' b- f0 e5 V6 j4 C; ]  }3 }
{ * Y7 J) z% q' V( ?' _+ L
a=(2*PAI/16)*i+(2*PAI/180)*k; 5 g. h) t9 @+ E" x! }
x=ceil(x0+48*cos(a));   I# a$ ]. E- g5 T( G8 H# f+ L
y=ceil(y0+48+sin(a)*B); + v) \# L  l6 o3 Y
setcolor(2); line(x0,y0,x,y); 5 M0 M, z- J+ z
} 3 t7 m8 d( |8 [2 Q) t
for(j=1;j<=50;j++) , U. r0 i' F% C- b: q' o1 t
{ 8 q, i2 [; z- G* D
a=(2*PAI/16)*i+(2*PAI/180)*k-1; $ [  f9 S0 C% W5 x* s* X+ h
x=ceil(x0+48*cos(a)); 5 J4 S" a. }% a  z* n5 R" u
y=ceil(y0+48*sin(a)*B);
8 A& {0 Y% s8 g2 T5 V  Zline(x0,y0,x,y); ; o! c5 Y! ?) G" W9 w/ L4 p8 {
} * _1 R; ]6 g2 U* ~. w9 f( U
} % {4 \( P" |2 ~( [  W- m
restorecrtmode();
# m$ r3 Q7 ?; q7 ]}
0 I- o% R- L0 r! m============================================================== / K# }. A- ~& ?7 h$ t7 j
【程序60- a' k) N- @( u" T& e! y- s1 [
题目:画图,综合例子。
/ b3 e/ |" y9 g( _1.程序分析:
; _  K. P$ w4 ~. X2.程序源代码:
, {% ~; o* X0 e#include "graphics.h" # @- T7 G9 [% @
#define LEFT 0
8 e( l& o& Z: u0 a& G( V: c/ I/ w#define TOP 0 % Z) I8 q1 D) R4 K
#define RIGHT 639 * K+ N* [. c' x, T* ^! |! V8 q
#define BOTTOM 479
& x  c" H+ h3 o4 t#define LINES 400 ; n. V) z% R( |' Z& G' ~( }# b0 {
#define MAXCOLOR 15 # f: ]& O, h0 |2 P! a
main()
7 y# _( ?- g6 s& K9 }, v. v{ % L7 d! q( j5 _# i6 G8 [
int driver,mode,error; 9 J) G3 f" k( W  [* |. [  `
int x1,y1; " D4 {7 J: |$ K1 |
int x2,y2;
. K+ ]& h* h. ^. q  O, Qint dx1,dy1,dx2,dy2,i=1;
) m  W3 y! G( z. |int count=0; + R% o2 o/ Y1 D# o) [( |
int color=0; , m; H3 U! d1 s  b! I
driver=VGA; + Y9 j% Y, l- J3 l+ _2 L* H4 p. I
mode=VGAHI; 1 W% I/ n8 m$ x) q5 L8 E
initgraph(&driver,&mode,""); ; p! _- Z% |; V7 R% @$ }# G
x1=x2=y1=y2=10; % T) p& S/ t9 Z6 f# G
dx1=dy1=2;
% Y. k$ ^( k/ P$ b- Mdx2=dy2=3; 1 U( P% ~$ s7 Y3 ~( {
while(!kbhit())
( F* k8 a+ T! G{
- I) C9 w& o  G, V: a* {9 `# zline(x1,y1,x2,y2); ! K9 f' j9 x; d4 x" r5 \
x1+=dx1;y1+=dy1;
( ^7 j0 l& w+ i$ U' B5 n! J) fx2+=dx2;y2+dy2; & R7 x8 |' Z* s' `& g# H/ [
if(x1<=LEFT||x1>=RIGHT) ' L1 w' {5 W! c) ?/ W+ |5 e4 j, R
dx1=-dx1;
/ h1 R- v% G4 Iif(y1<=TOP||y1>=BOTTOM)
$ m' C4 a, Z! g' |dy1=-dy1;
5 X+ n' y0 q% @" e. tif(x2<=LEFT||x2>=RIGHT) ' N7 w# w+ w! \$ O* N
dx2=-dx2;
$ W. w% Y& A4 j& q' Pif(y2<=TOP||y2>=BOTTOM) + Q* w; v: F7 z, \: r
dy2=-dy2; + `% @; _# W7 {* ]! z5 r& E. w
if(++count>LINES)
5 R: `4 }- F' j$ p4 ^1 z8 m7 P. u{ # ]/ ~+ ~1 x7 |  e) f" T
setcolor(color);
( [1 z  |0 y1 x/ ncolor=(color>=MAXCOLOR)?0:++color;   t: F3 ^# _* f% h; f" [$ N
} / p6 {$ f- N$ l! X% f
} + Z  Y1 \; p; ?, g8 M% `
closegraph();
" V8 X7 h% q/ z# e  s; w}
【程序61- Z5 Q; R6 p; C$ N1 v7 e+ H
题目:打印出杨辉三角形(要求打印出10行如下图) - k. v# O% Y) K, {: }
1.程序分析:
# u+ @9 x% s' R" u9 ?8 B, U+ k+ E1
$ E4 C5 e6 R+ ?0 B: X# Y# z1 1
8 r: ^; P6 J( g/ Y. n0 R1 2 1
; [, B- \( t" w8 @. h% g2 ?1 3 3 1 8 j& j8 X: y+ [6 T
1 4 6 4 1 ( W6 H6 {" W6 ^; D- c5 h0 t
1 5 10 10 5 1
7 A! m/ R0 @7 T2 b. z2.程序源代码: 5 l2 X, k. c, V9 v
main()
9 J4 x5 t3 [' F{int i,j; 8 }6 a0 N4 K* }2 l. q
int a[10][10];
; M; Q8 U) P5 H/ t3 ?/ wprintf("\n"); * F: N# W" S' \# ~% p
for(i=0;i<10;i++) 4 Z" j9 t: s5 U) o* |$ n' R
{a[0]=1;
$ T6 _: Y) S7 \2 A- b2 V# Ba=1;}
1 e6 G; s! U3 {/ S& D; S8 kfor(i=2;i<10;i++) + S7 V) _2 L8 r! \0 [
for(j=1;j a[j]=a[i-1][j-1]+a[i-1][j];
0 d* ]4 p) I3 ]# w7 n4 |for(i=0;i<10;i++) 3 C( h' V7 E, d7 ~1 C6 I" q
{for(j=0;j<=i;j++)
" F1 r# ~" c1 e* V4 Dprintf("]",a[j]);   J4 S7 D0 }+ ~8 ^& [. Q+ Z$ \& h7 E# ^
printf("\n");
0 @- k! a6 W+ u# A3 d4 B}
/ k. n7 r3 f. Q} ! A" A2 I$ q5 [! T
============================================================== 1 P# U- y& b, j6 G7 @: a5 p6 p7 e! N& F
【程序62
+ ~; o& {) w' J6 B7 S9 v+ t6 T题目:学习putpixel画点。 , `7 P$ K4 ]: N" z, c/ ]
1.程序分析: 3 s0 ~1 l6 D* C- H) Y" s- B
2.程序源代码:
+ Z; B% t& [$ I6 [% h- d#include "stdio.h" 5 R4 t; y* A$ q) R
#include "graphics.h" 2 C0 i4 v1 s6 X2 _0 F
main()
3 h: m6 c- s7 d; @- S! B( v{
% K: a, f' Q: M- nint i,j,driver=VGA,mode=VGAHI;
8 X& q- ]" w: P! J! E9 q1 cinitgraph(&driver,&mode,"");
& M8 p) C4 e) zsetbkcolor(YELLOW);
0 J# V/ J) R" Ofor(i=50;i<=230;i+=20) " ^3 [' q' i0 ]" b
for(j=50;j<=230;j++)
3 {( M, b( T- V. z) E) vputpixel(i,j,1);
9 B2 p7 n. Y5 J8 T$ Rfor(j=50;j<=230;j+=20) , g3 f! E# s+ D( Z5 N) u' F' W
for(i=50;i<=230;i++) / l' M1 I# ]7 G5 {8 Y* ]1 P
putpixel(i,j,1); & i8 y0 l& S* U4 z/ `) V+ L: H5 K
}
/ s/ Y: F% H  P. R5 y) z% _==============================================================
7 ^9 J/ `( [$ H( o* f【程序63
+ K3 M6 C& I% I4 Y题目:画椭圆ellipse , f" F9 G0 U* h- i1 F" o& }
1.程序分析:
4 ?* P. B2 ]; ~2.程序源代码:
# h# t: ]$ N, C* N) \2 Y#include "stdio.h"
7 M) T: Z1 t/ b5 F4 ]( G$ X3 _#include "graphics.h" + s! e7 V. S- W1 u% P7 n4 H- }* p
#include "conio.h" 9 x$ q# M4 t% @1 L* W
main() - x2 o6 s4 q9 N- |( l, \# h
{ ; g+ w( H) J) g& S. R0 R) _
int x=360,y=160,driver=VGA,mode=VGAHI;
3 g9 y6 B3 [$ [4 o/ F+ tint num=20,i; 8 n# J4 d, t( y$ z& m
int top,bottom;
2 `0 g8 p2 T4 Qinitgraph(&driver,&mode,""); 2 }% R( v7 n# `* `0 Y3 T- m! d
top=y-30; # L' H. `: C, Y5 q5 ^+ z% h
bottom=y-30; 8 B6 u; U/ c) d  y2 z  d1 S: m% ]
for(i=0;i{
/ @+ o! S7 k7 P- B  A# r7 oellipse(250,250,0,360,top,bottom);
* Y' ?" ?6 P6 Z& |- Xtop-=5;
( c) @8 L- K3 D3 Z# L7 _bottom+=5;   ^- |0 t. k$ f
}
( Z  p/ Q1 ^. R7 ]& X( dgetch(); + J* p( Q4 u0 m" i! G
} ) Y/ w, |/ |) j
==============================================================
3 _8 ~( H* l  p# H) [* c  R5 O【程序641 A- ^$ V$ K+ J9 V0 h
题目:利用ellipse and rectangle 画图。 ! y1 ]$ ?# [4 r- p6 V
1.程序分析: & U0 p( n0 [! g0 I/ P1 F( @9 C
2.程序源代码:
3 U: d7 y2 d6 S- T+ L$ D#include "stdio.h" ' V9 @3 p! a6 s) \3 S, r# @) v
#include "graphics.h" ' L) w5 x  N4 e$ S
#include "conio.h"
4 T" C& s8 {2 d; {! ]" t" V" d4 T' pmain()
, v! D3 Z. h/ }{ 9 R# ]5 L7 n0 R  v
int driver=VGA,mode=VGAHI;
0 ~5 b: S3 o7 W4 c: {int i,num=15,top=50; * {+ n" b* N  W+ t1 m' {( i
int left=20,right=50;
4 ?$ Q2 x% f0 ainitgraph(&driver,&mode,""); 1 i, i5 F- U8 Y' _! {: c  C
for(i=0;i{ : Z: o. U  W. B; _; P
ellipse(250,250,0,360,right,left); 0 F, j/ Q: L. O% b
ellipse(250,250,0,360,20,top); 2 k6 E$ o8 O# K) B
rectangle(20-2*i,20-2*i,10*(i+2),10*(i+2)); ) x9 Q, o, L1 @: O  ^+ }) V/ _
right+=5;
; E. ?! u1 l: p6 bleft+=5; 1 J! I9 Y5 f% }, w0 G
top+=10; ) C: t! G* G( ]5 C  O' F/ O" j
} 4 w2 \1 @2 v$ ~( [! t2 j* z
getch(); & G5 ?% @. T& H( z; p: Z
}
- L+ z9 m/ y; y) }: J' z============================================================== % }) i: k0 X5 D. T/ J. ?& B6 z% D! C
【程序65
# I7 K% |, }; Z题目:一个最优美的图案。 ) [5 {0 F% j. K! ?3 V  {& l
1.程序分析: 0 q+ [5 [* o  @5 Y& E+ e
2.程序源代码:
& m* ~) _7 D  O0 y#include "graphics.h"
) [  @5 |1 ~- S9 U" \#include "math.h"
5 P6 Q% J8 x6 a#include "dos.h" ( o6 K. z2 Q( T8 n. @$ ?3 x
#include "conio.h"
4 O4 Q  D7 ~' Q3 x6 E#include "stdlib.h"
% ~# |0 o, S: n% W# C#include "stdio.h" : S1 W$ W2 n' O6 F- d  Y
#include "stdarg.h" % b- i, L( X5 \6 q
#define MAXPTS 15
2 u4 k/ l& Q5 T. K#define PI 3.1415926
# E1 K% g0 U4 }6 R' J9 Mstruct PTS {
% u$ z: W. _3 B# k" n( ?8 Qint x,y;
- D3 T/ [3 }0 b' R9 W% u2 a}; : s: H! ~9 h# x- q% S8 c1 N+ [3 z* r6 n
double AspectRatio=0.85;
) U5 r- u3 O# ^' S. [6 dvoid LineToDemo(void)
  `+ O$ Q8 p) U% |{
" T9 y9 a# ~1 C5 @# `: |struct viewporttype vp; $ t0 {5 l' Q2 [8 a
struct PTS points[MAXPTS]; / o; R4 p; x4 R$ j2 l1 `% P
int i, j, h, w, xcenter, ycenter; 5 ~/ B) w: ~! g8 r  X( Y) g: q  i
int radius, angle, step; ' b7 J3 K8 i3 z' c9 l; ]
double rads; 5 x8 g3 G, }+ k2 F9 t- p2 z, m2 F
printf(" MoveTo / LineTo Demonstration" );
* Z9 i& d4 A& U/ ugetviewsettings( &vp ); " a# A  y8 X; N* m1 m+ {) t/ y
h = vp.bottom - vp.top; 1 ~$ {$ p9 I6 K1 y
w = vp.right - vp.left; : K5 m5 x$ Q" G& [  u
xcenter = w / 2; /* Determine the center of circle */
# R2 _1 _' S/ q% jycenter = h / 2;
# Q4 c- x9 I5 Rradius = (h - 30) / (AspectRatio * 2);
0 x: Z6 H  ?  K; Q! l0 bstep = 360 / MAXPTS; /* Determine # of increments */
  Z3 E! U* Y" Cangle = 0; /* Begin at zero degrees */
% l2 Y/ K& D" A2 W, w% }for( i=0 ; irads = (double)angle * PI / 180.0; /* Convert angle to radians */
: I, O9 L# J, r+ X2 }% y% K1 Kpoints.x = xcenter + (int)( cos(rads) * radius ); + @" ~8 n1 ]. r
points.y = ycenter - (int)( sin(rads) * radius * AspectRatio );
9 m4 V5 a0 J& P  Z8 n% V# v: Y$ t6 hangle += step; /* Move to next increment */
6 g" ?/ r% N7 v% l5 E3 p* C8 k}
$ t6 f1 y) C  y7 d( ncircle( xcenter, ycenter, radius ); /* Draw bounding circle */ 1 P9 y" u# ?7 K8 w( f" A8 O- C
for( i=0 ; ifor( j=i ; jmoveto(points.x, points.y); /* Move to beginning of cord */
+ D0 Z" m6 m1 Mlineto(points[j].x, points[j].y); /* Draw the cord */
) d) F; {6 ?6 r- f( C} } } 7 f: O5 _2 B5 Z6 L# R
main() 0 p& \6 s/ i' F: j; h' K
{int driver,mode; . U8 w. P: s& r( G
driver=CGA;mode=CGAC0; , w) e' i& [0 G  r) ?& I
initgraph(&driver,&mode,"");
9 m& M, a, ^* I  X6 H3 P5 H% A" lsetcolor(3); ( E/ b9 A! f. \, B; }
setbkcolor(GREEN);
, P  y7 j2 G; v) q2 |9 y2 B* |  tLineToDemo();}
1 D7 R; \, k; [0 }- Q============================================================== - R$ U; C# P5 i! ]
【程序662 H' v$ |9 b' M, O& j
题目:输入3个数a,b,c,按大小顺序输出。
* I* e( M" q1 g* J1.程序分析:利用指针方法。
  V! N7 _+ B! @2 c# `& K2.程序源代码:
8 g! |# Y6 `6 k) d4 q! `, }) y' x+ f( G) N/*pointer*/ 2 c% j, k# K* e5 T& G9 z, R
main()
7 o& G3 G: o- T{
7 \6 U1 K1 @! ^. s" Y( a' Cint n1,n2,n3;
" r$ z3 c% N# hint *pointer1,*pointer2,*pointer3; 5 f$ I2 P0 ~, ]
printf("please input 3 number:n1,n2,n3:");
3 ?  d: t/ q$ H  X' fscanf("%d,%d,%d",&n1,&n2,&n3); ( J$ E8 A$ l. k) m) }0 {! G
pointer1=&n1; - J# T, e, J$ h5 e
pointer2=&n2;
# Z8 M# u- D  @7 R4 tpointer3=&n3;
2 |) A8 }1 a- p% v! r8 k$ y9 F7 qif(n1>n2) swap(pointer1,pointer2); ) b# Q$ V: X1 ]$ ~, N
if(n1>n3) swap(pointer1,pointer3);
9 Y( ^# g. k& C- V# ^; ^4 {if(n2>n3) swap(pointer2,pointer3);
6 `+ K! u8 C2 F' s0 D% ^1 z4 G+ mprintf("the sorted numbers are:%d,%d,%d\n",n1,n2,n3); : c9 g" N6 n- U9 C6 q4 D
}
! K+ k( N9 x3 ]& ]$ L. B3 ]  gswap(p1,p2) # T$ h/ ]8 A( S" e* w+ n; F
int *p1,*p2;
4 z$ w: v9 `" |) c+ t{int p;
$ @# w! Y+ r  o' Vp=*p1;*p1=*p2;*p2=p;
3 s! A0 ^& L% ~6 M} " g# E/ z  K. U) `  K  F
==============================================================
8 f# Y, ~0 R9 B* b' h% c+ s【程序67( b) |1 X1 j* L5 w
题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。 % k5 Z3 s% S, S4 m: y1 t3 C
1.程序分析:谭浩强的书中答案有问题。 % o) U7 S8 f9 r6 R. a: A
2.程序源代码:
7 s& z. t7 m1 C3 Gmain() + s6 }% V7 m( n. D* D5 ~
{ & w2 B1 P+ M+ A8 N. {7 c
int number[10]; 0 }$ _/ Q6 |! X
input(number);
- w1 b& `# i  I  }max_min(number);
. o7 A) F3 @7 O! R" {output(number);
0 f' {, A- q, e} 6 B' ]$ e' g$ x/ E
input(number) ( l' m: C, M" p* ~1 O" G
int number[10]; + z9 o) H0 a+ h4 u. I2 o4 e* G
{int i; : w6 X5 J' o8 K
for(i=0;i<9;i++)
4 g0 _' O7 @6 d& [' `scanf("%d,",&number); 1 E( ?" O- [* {& l! O' s
scanf("%d",&number[9]);
: T: F; `( S7 S+ ]+ R( r- U- |} ! \$ n1 [: M0 f% M) s/ v% E  A
max_min(array) & Y% Y& [. h& t' a# P% {
int array[10]; ! x( U! n' A0 H6 U3 D9 |
{int *max,*min,k,l; 0 a: |4 S! Z4 ~# Y/ Y. @( {) @
int *p,*arr_end;
5 R7 P8 T+ N# J/ d* D1 H& Sarr_end=array+10;
! [: X# [) e5 R( p8 Vmax=min=array; ; q  `, g% V+ u
for(p=array+1;p if(*p>*max) max=p;
- v- B. V, o# }5 K; x6 m' Zelse if(*p<*min) min=p; 2 P  n1 h! t# A$ w: b" ]
k=*max;
& L7 B' R- V7 d, U$ M0 `8 k% ml=*min; - l1 B$ ~6 [3 k! y2 \! z7 }: k
*p=array[0];array[0]=l;l=*p;
2 L, F+ o) Y- e+ |, K*p=array[9];array[9]=k;k=*p;
/ e, ?+ ]$ ]/ m/ [( ]return; 1 X1 U3 i- _& w5 b
} 3 b. F+ J+ a, f7 c6 N: E9 X
output(array)   @7 e# Y' A& J  l- T" c  e
int array[10]; ' ?/ G. d) a6 k8 U+ O* i4 n* y
{ int *p;
$ b6 c4 E; f' |) h" D) q+ ^for(p=array;p printf("%d,",*p);
0 A+ g& @1 x1 w4 J# z6 ]3 F( kprintf("%d\n",array[9]); + g8 z8 A0 ^$ F. g& b
}
% U) Y# @0 r, _- t. S==============================================================
2 p* J" t' t' U, j+ K

& L% @5 H! j4 W5 Q3 _# S; L' I

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-19 03:43 , Processed in 0.078125 second(s), 23 queries , Gzip On.

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

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

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