找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

C语言经典算法50-67

[复制链接]

114

主题

136

帖子

1000

积分

四级会员(40)

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

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

EDA365欢迎您!

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

x
【程序50* _/ T3 L( l& m3 ?8 T7 f! m/ s% h
题目:#include 的应用练习
: \' }; {) i6 U3 f" @; X# X1.程序分析: ( Q  U5 A) `5 }9 D) ?! P
2.程序源代码:
0 p- Y( {: b% ^+ ktest.h 文件如下:
0 F$ f; m9 ?- f. `- v, v#define LAG > 1 L; j2 A9 w$ ?
#define SMA <
! f: b* s0 s, e& u- U#define EQ ==
9 v1 D/ E8 O$ x9 p  j#include "test.h" /*一个新文件50.c,包含test.h*/
7 x( A5 N$ j8 D4 g  {#include "stdio.h"
  N+ u- P; L0 s3 s8 ~void main()
% t- f- O5 i5 S$ s# U: h( \{ int i=10;
  c; D2 ?$ t/ x5 ]int j=20;
3 q  S2 m( o8 r+ Z0 Xif(i LAG j) ' H+ _2 V0 C" k3 |( Q
printf("\40: %d larger than %d \n",i,j); % E1 H9 s$ `3 J: ?7 R
else if(i EQ j)
% i2 |- i$ |  t) x+ f. _( E4 D3 i5 L% iprintf("\40: %d equal to %d \n",i,j);
. [9 l8 E- |& p9 g* {6 n# celse if(i SMA j)
1 W$ V- x' P  Mprintf("\40:%d smaller than %d \n",i,j);
4 ~& h0 b& v: ^0 g- R6 F& ~) Kelse
4 s/ A  `: `5 o0 w* ]. Bprintf("\40: No such value.\n"); 8 d8 B( S# y+ p6 B
} 1 c; K" I1 G; @, K
【程序51" H3 _0 \& k; R* D. W! f2 I/ b
题目:学习使用按位与 & - H2 I, D' W1 u! B) T9 s
1.程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1   B; y+ H% ]; U+ k: ^: L3 _( h( F
2.程序源代码:
- }- M7 Q6 v( X: O3 l4 i! c: N) \#include "stdio.h"
; \7 v! s" _" a9 Zmain()
0 l/ k( R$ d. w, T{
- c6 {- ?( n5 a' I8 Eint a,b;
% ~! \' x+ r  b, Ta=077; 8 X9 X) `( r; k
b=a&3;
3 v# G" T4 }9 O* ^$ K, Rprintf("\40: The a & b(decimal) is %d \n",b);
5 M# K, t8 O7 Z1 X+ Lb&=7;
9 u: E/ Y6 C0 v1 ]printf("\40: The a & b(decimal) is %d \n",b);
! n" W8 I3 O# k1 R, Q+ e! l- `  e}
& p1 W3 H: h! ?% l4 {' b============================================================== * G  a+ g7 F) B" Y
【程序52
! v- C$ q9 f1 }7 A2 M  f题目:学习使用按位或 |
; r- ~9 j2 A8 ?5 l6 l/ {1.程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1
- U5 v$ g- U) G, o; _7 q2 `( B2.程序源代码:
9 ]9 H9 A7 H# Z) ?#include "stdio.h" 5 ?: v3 W/ q, y6 e& D$ K! R" m
main() ' [. W7 ]+ w" F* W6 m% k
{ & H) ~2 X0 t8 O; k6 T5 h! t+ f
int a,b;   |0 _* E  r( A' l
a=077; 6 ]4 m: y# L1 ~' ~$ _' ^" u" J
b=a|3;
  u) Y7 h2 j6 W- ^+ U" o# Jprintf("\40: The a & b(decimal) is %d \n",b); 8 Q2 Z5 W& g8 Y' ~
b|=7; 5 Q3 A& t7 s) O7 X: K( m& {
printf("\40: The a & b(decimal) is %d \n",b);
0 h* t% M4 D# C} % X  b. `9 c* c) R5 d' ]
==============================================================
! `& w# b3 d$ w3 J【程序53嵌入式信盈达企鹅要妖气呜呜吧久零纪要
: r/ S- |! S4 j  a题目:学习使用按位异或 ^ ( n$ y; R, s5 J. s
1.程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0
, @9 X. o1 h8 S+ r/ r; x2.程序源代码: 5 {  t/ `' _* B, Y
#include "stdio.h"
' s. [7 H. v0 D/ O7 d  P- [( xmain()
: N9 u/ B  D, v* W' ~$ o' F{ 6 f; z& j* a( C% y9 Q# i
int a,b;
; i8 t# \! V; \  x4 M" fa=077;
. k% Q; G, T; V6 p- Y4 `b=a^3; 1 m  \. }6 X! w7 o! N
printf("\40: The a & b(decimal) is %d \n",b); 3 m/ f( J# Q, C$ B' W2 U8 q( e' M
b^=7;
. G" y$ K$ L0 a: [6 yprintf("\40: The a & b(decimal) is %d \n",b);
7 ^! \" n1 P" I' [8 [}
+ c) r- W8 r5 l. ~============================================================== " E2 t, F: m  J2 x! r6 s0 W0 i( f
【程序54
% n. n8 [/ g& w1 Z! h* c题目:取一个整数a从右端开始的47位。
# i& n# z+ ^0 c, F: m程序分析:可以这样考虑:
/ t8 ]5 Z% Q8 e0 h7 v& j(1)先使a右移4位。
; R) b1 ?4 a5 Q$ r7 \' I# G' r(2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4)
; g- u( T3 D- {$ v2 A7 Y* ^(3)将上面二者进行&运算。 + Z1 p& J6 }# a
2.程序源代码: + \0 q) A3 s# D- R4 L, s
main()
+ p5 `- r8 ?/ _( n4 _& y% i{ $ W6 B1 @' b. g7 ?  }
unsigned a,b,c,d;
0 y( R( ^5 e" V* hscanf("%o",&a);
# d  _( C' s+ s9 o. u* zb=a>>4;
# D' w# u' D* M! Y7 ]0 C) T% U$ Bc=~(~0<<4); + _' G$ V3 V6 p  k$ z
d=b&c;
- L3 j" ?* L; B9 oprintf("%o\n%o\n",a,d); - W* }- R. t& T* h6 r
} ( p6 e: C( X; T. e, o
============================================================== 9 f8 c: A/ C( c1 h2 X
【程序55/ |2 t6 c- i% `8 w9 f0 j
题目:学习使用按位取反~! @  h* g! T! ?" ]0 C7 r* A
1.程序分析:~0=1; ~1=0; 2 F. @- v6 O: W$ i
2.程序源代码: 0 O$ @( {/ V6 s* w; T% L5 b
#include "stdio.h" & o* t4 }- @- C) i7 `/ l3 M
main() , G* d3 h. }3 E
{
+ Q0 f1 L# T6 c+ ^int a,b; # G' d2 i; ]6 X6 y5 n
a=234; , u+ X5 c- }+ e2 a+ \- p2 T; N
b=~a;
+ \: y; ^; p$ t8 V( _! t& sprintf("\40: The a's 1 complement(decimal) is %d \n",b);
5 t$ k. C) o8 m7 a5 p- @: Sa=~a; % e7 x9 F' Y, s" L  G. @$ U
printf("\40: The a's 1 complement(hexidecimal) is %x \n",a);
8 c) n4 F! J9 r# n} 1 h- M6 N% x/ L) x4 C
============================================================== + j" q  p5 N+ E5 W
【程序56
4 [$ ^4 O9 e. n9 b$ P: G题目:画图,学用circle画圆形。
6 \( }& W$ S; U; I4 L+ y- u( _1.程序分析: 6 F- b5 I" n4 `3 W+ X6 P
2.程序源代码:
( z8 T6 j3 `  P5 N0 X3 o/*circle*/ + J: R7 r! M: x& F: H# B0 M
#include "graphics.h"
& v/ `8 J, W& h8 O- X% Wmain() . E  U* N& P* l2 K. C) T  g
{int driver,mode,i;
( F' w8 y  e2 o5 F& p4 A; w) rfloat j=1,k=1; # p: N$ O0 }8 V: u( P6 K0 i" u
driver=VGA;mode=VGAHI; & c3 p  i, T  B
initgraph(&driver,&mode,""); ' P1 d, B0 M  J& w/ I& Z& Q
setbkcolor(YELLOW);
9 E( h+ f+ G. {7 q7 `for(i=0;i<=25;i++) 2 B& e( b* }  q0 }4 Z* X* e9 u# |
{ * D5 s! m6 K* e; m
setcolor(8);
# W# O5 [' Z0 Y  l" o8 W  O8 s2 ~) dcircle(310,250,k);
1 C) f, q0 U6 u! g  E' h6 z* pk=k+j;
  S" V6 V8 ^& Q7 j* o; Tj=j+0.3;
5 `0 j. B( s) s# g# ]6 I} 8 t6 R' K- `  {+ S, r6 z
}
8 H5 z5 r. j- G1 `, n/ B- V============================================================== 5 s6 X6 F( e2 u, Y- c! c
【程序574 X7 U6 ?  b) k) e# A! n$ i8 E
题目:画图,学用line画直线。 9 m9 W+ i6 j7 N/ x
1.程序分析: ) V$ X+ m* o0 w
2.程序源代码: , f. e% @9 s1 v
#include "graphics.h" ) F* E. r7 \% C* O/ T* G& L7 v
main() . ^7 J6 j( T$ b& [* S* H2 K# B
{int driver,mode,i; 7 m  N/ e  ]" w( q
float x0,y0,y1,x1;
: {5 G( U( L) T7 X6 O) f4 Rfloat j=12,k;
+ h/ U0 N7 _# `" C6 cdriver=VGA;mode=VGAHI; % R1 {$ x$ U; E
initgraph(&driver,&mode,""); . {* z3 B. i. ~, r! K4 j5 V
setbkcolor(GREEN); " |) m% u* H3 t  D9 A2 A, a* W/ h
x0=263;y0=263;y1=275;x1=275;
4 N$ f% Z4 D1 G4 v3 ffor(i=0;i<=18;i++)
  \' [! r0 x* n" U- M1 c{ 2 p& p- c3 G& h- E8 v( @) j
setcolor(5); 5 z. [! G/ m: c5 m8 W( @
line(x0,y0,x0,y1);
: x6 ]' E; z! q6 T. S8 Kx0=x0-5;
; w3 z. E% V6 T, t9 o% g$ hy0=y0-5;
+ ^4 B; x* W2 s2 H6 Z9 w/ ~3 Kx1=x1+5;
: h/ \5 y2 Y/ c! p; {8 i* y' l* q* xy1=y1+5;
$ m( I% C1 P* f6 q3 u$ F/ ~j=j+10; : R$ z9 t4 ^) U3 h! h
} ! R9 Q( {; m0 s
x0=263;y1=275;y0=263;
8 q; a7 Y1 q; ?# O3 _for(i=0;i<=20;i++) - U: U# X1 @# B5 ?( b, W: i
{
$ ]7 ~$ R/ y$ @0 m$ P2 Fsetcolor(5);
& |5 X% }+ N. kline(x0,y0,x0,y1); 4 q9 V4 `$ @4 b1 `) r
x0=x0+5;
" C7 [0 q1 Y0 t8 o  T; }y0=y0+5; " U! j- R8 ^7 s* ^! B+ K& V
y1=y1-5;
! r' o% z  h! }# z1 @$ q} 7 H6 t! f- [6 u6 ]- p- G
} ! T* b) {% x" S3 A1 x. m% F3 m0 A
============================================================== 2 m8 {+ N+ a0 ~# l6 u( I
【程序58
0 f7 J) m8 A' @: t题目:画图,学用rectangle画方形。 . w& v  w# F, q! E! i$ `! q
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
$ f# a8 j; }! X. j: v2.程序源代码: 3 v$ Y5 z" G+ y# d. ?6 k8 R
#include "graphics.h"
' U, x# w! x7 Y7 Z8 T5 l, Kmain() + U( h- Y: p# t1 U6 B
{int x0,y0,y1,x1,driver,mode,i;
0 g) e# I7 W: K# i9 ~9 Fdriver=VGA;mode=VGAHI; 3 X- Z* ~( M( b2 D! x1 ]
initgraph(&driver,&mode,""); 8 z5 f2 @9 [7 T" d; `
setbkcolor(YELLOW); ; \) c( A7 n3 g/ p( E$ N
x0=263;y0=263;y1=275;x1=275;
+ v) G# E7 I' B. M" kfor(i=0;i<=18;i++)
9 X* Y, V% T0 Y1 Y{ 0 K3 @  Q* s2 i0 I: r8 T+ l
setcolor(1); / @0 K1 S, E0 i, p/ H3 e
rectangle(x0,y0,x1,y1); - Z3 o- R: Q! x" I
x0=x0-5;
) x/ N+ T6 z$ u; o" F/ [; Vy0=y0-5; 8 Z  \: Y1 g$ W' K
x1=x1+5;
) c0 e6 t0 z- Q& R7 fy1=y1+5;
( k& u# n- C* v, M) w}
) m& @: J) k& P: r4 j% W) Z. ?* _, dsettextstyle(DEFAULT_FONT,HORIZ_DIR,2);
$ V# S: Q- N$ p: ^/ D5 N1 Douttextxy(150,40,"How beautiful it is!"); 9 s# q! \3 Z. x4 A, R& a
line(130,60,480,60); ! T! Q% u8 m$ X9 a3 v" g  a
setcolor(2); , v; H1 }1 g9 C
circle(269,269,137);
) l/ |: Q+ i8 \} 8 G( X7 P- ~( _& b7 n. d0 Z8 B
==============================================================
0 [2 o  k) ^! M: \【程序59; S! S% I- ~% e/ c( q& p+ [: R
题目:画图,综合例子。
2 N/ T" |7 }( i0 A- [1.程序分析: ( p5 [0 ~1 O0 o! N! D
2.程序源代码:
1 A3 R% e2 B" R+ o0 S& T# define PAI 3.1415926
$ {' @# V: S0 V5 I4 o% e! W# define B 0.809
; O3 H6 S7 p5 q2 m* P# include "graphics.h" 9 M; ^: e: W% H) ]3 O0 @
#include "math.h" , ?! k+ l1 r, b, o; f; ?! J; h, ]9 h: P
main() 1 A% E3 k9 }6 U1 a1 |
{ : S5 J. o3 V2 j
int i,j,k,x0,y0,x,y,driver,mode; : l0 _; ~, o, f. x# `+ E9 {
float a;
3 B" E% k; n. d/ N8 G3 S5 j1 e# Idriver=CGA;mode=CGAC0; - n4 E9 \$ I0 Y& Q
initgraph(&driver,&mode,""); % p' x" w7 {- ?0 u, H( Q/ Y
setcolor(3); 8 \/ K+ i1 l7 r) w
setbkcolor(GREEN); ; g# Z; H' m8 ~5 C
x0=150;y0=100;
$ \- O: Y* i+ {% g' l; f3 Ncircle(x0,y0,10);
! h* Z5 _' y( A5 {: Gcircle(x0,y0,20);
% e( l3 V+ U3 x: D" Ccircle(x0,y0,50);
# M. |- u3 H+ R; j$ d5 @9 Efor(i=0;i<16;i++)
( H2 q2 M; c/ M$ A  X4 b8 C{
: Y  u6 L4 E- Y1 L! }9 v. h) v7 Ua=(2*PAI/16)*i;
/ D: @8 G- B7 @$ |6 k; D& Lx=ceil(x0+48*cos(a)); . n& r# P0 t/ L4 y. _
y=ceil(y0+48*sin(a)*B); 9 }) Z$ H) ~+ b8 ?, o- z
setcolor(2); line(x0,y0,x,y);}
8 ?' M  h4 u  A1 F. s7 s4 Rsetcolor(3);circle(x0,y0,60);
2 m( ^* f5 Z; h" ^/* Make 0 time normal size letters */ . j) d9 c1 k0 V* c* T7 d
settextstyle(DEFAULT_FONT,HORIZ_DIR,0); " `. L1 N5 X" a$ X* d
outtextxy(10,170,"press a key"); * i& j0 a7 T, V, c; m. I
getch(); 7 q$ M  T1 y5 S0 ^
setfillstyle(HATCH_FILL,YELLOW);
, Y, F8 N5 Q& K+ Zfloodfill(202,100,WHITE);
4 h" g$ O  |# p, ~getch(); % }1 ~$ X5 m  E$ d* m+ `3 r# }
for(k=0;k<=500;k++)
0 k) p* u) O; ?! M( Q% i{   p0 }" s0 {2 O! I
setcolor(3);
8 f& v7 ]/ q$ D) Z/ ~4 E2 H5 tfor(i=0;i<=16;i++)
: D- Z# F2 ~" ]$ s5 [8 q  c; a{
0 X; c8 m- _- _1 _7 j4 @6 }a=(2*PAI/16)*i+(2*PAI/180)*k; , k0 ^1 K" {- X4 [! V% \0 Y
x=ceil(x0+48*cos(a));
6 S) _/ d, x+ V9 f0 \y=ceil(y0+48+sin(a)*B);
9 v  a; S/ H4 e! l) c8 c* P* P) C# x# Osetcolor(2); line(x0,y0,x,y);
, \, k4 i9 c  ?4 U% X} / ~0 k. _6 A, c$ l- S. z( Z3 v* u+ o3 z
for(j=1;j<=50;j++)
. J" v& U* w8 H% r; O* `: l1 E% v{
- k' f: s8 t0 m. N" P' Z+ ]' R! Aa=(2*PAI/16)*i+(2*PAI/180)*k-1; % S3 L, s" r" U8 D/ |0 L
x=ceil(x0+48*cos(a));
  h' _3 d6 g1 w  u0 D9 u8 N, Zy=ceil(y0+48*sin(a)*B);
5 o/ p) l- M- [0 y5 d- _9 }line(x0,y0,x,y); , _: ?, F/ }  i
}
- a/ m; g0 T% G1 F( H! |9 ]9 y}
8 V+ c- u6 ]6 Rrestorecrtmode(); $ ]5 r0 G& w) g" W6 r5 N7 B& M7 l* h
} , @) T5 ~" \6 C' b5 ~# c
==============================================================
* P# c. E0 ^4 U: e7 _( S1 M【程序60- y+ N0 y0 n. f8 W$ V
题目:画图,综合例子。
3 i" @2 c( \4 m: E1 Q1.程序分析:
8 y  {" H4 h6 C& c) F2.程序源代码:
( @- L6 s* ^2 E. Z4 U#include "graphics.h"
7 b) X9 a4 ]4 K" k# P: e#define LEFT 0 1 r- R% }3 k  l  L/ T
#define TOP 0 1 `7 {$ m+ d& M) H
#define RIGHT 639 / G6 V6 X. J6 s
#define BOTTOM 479
) E) C% ~) M! O3 j4 k' ~9 Z#define LINES 400
1 P- l" R3 P9 G, H. d8 }0 M#define MAXCOLOR 15
, L" c4 w. U, q+ O" Gmain()
  ?% c4 U2 D& e3 K9 V+ X! O{
0 z& q1 O8 n( W8 l- M5 z, u8 dint driver,mode,error;   w9 w4 k* g/ P( R
int x1,y1;
# x1 J0 a' Z5 |- }9 `* Jint x2,y2; ! f; z) D0 E% M
int dx1,dy1,dx2,dy2,i=1; * Y% E: G; G  J- _
int count=0; / R6 w$ I  \; y
int color=0; - @8 S( B% L% @' S: r" p+ _" Q. ^  z* J" Y
driver=VGA;
* e9 g+ G+ O2 @4 f! i! G7 fmode=VGAHI;
! g* w0 H9 `% Y+ T" l- u  b4 Tinitgraph(&driver,&mode,"");
5 u- l& g; g- Y! X6 i  lx1=x2=y1=y2=10; ( Z+ M3 r0 z4 Q# X
dx1=dy1=2;
. E5 d  s  _4 `; N1 I* t# Fdx2=dy2=3;
) S2 T* n! I* f; b( z( n7 F6 Fwhile(!kbhit()) * U3 E4 g% i$ [" f$ h% Q
{
0 C9 d  I& b# O# u* oline(x1,y1,x2,y2); 8 ^% Z9 T# }) q- o
x1+=dx1;y1+=dy1;
* `, D* e6 O; F* \$ d7 T- px2+=dx2;y2+dy2;
0 j, r% s, ]8 @  }  b6 O% [* Bif(x1<=LEFT||x1>=RIGHT)
8 G3 ]5 @1 W7 j, Vdx1=-dx1;
% l0 t! j; n6 ?5 I! t# ^& M" }if(y1<=TOP||y1>=BOTTOM)
+ P0 g# c  L5 e. y5 h6 O  Idy1=-dy1; / {2 q! b/ S0 G# R8 s& v  {
if(x2<=LEFT||x2>=RIGHT)
  }. }. K7 h0 cdx2=-dx2; $ b  u5 z" s* W7 }- f
if(y2<=TOP||y2>=BOTTOM) / P1 B8 w3 v5 V# r$ c
dy2=-dy2; ; r  L# ~" a: e3 v: W" ]# _
if(++count>LINES)
5 ?" s$ b: o* \& G6 p{
% @+ l( Q" m  j# m: `" Asetcolor(color);
8 G4 R8 Z& h: Y  F- E: e5 acolor=(color>=MAXCOLOR)?0:++color; 6 y/ t) F1 ~4 ~  @
} 3 Z+ m/ f% l4 Y/ W- v5 h0 _3 S: J
} 9 x4 v! Z4 L2 x
closegraph();
; _7 Y+ _8 N# B+ w7 T8 l}
【程序610 P8 s! E0 Q5 R
题目:打印出杨辉三角形(要求打印出10行如下图)
+ K2 y3 `0 D& S) F5 T( H& x1.程序分析: & N# g: X) z6 h& U
1 $ T5 W' _* t4 o( R
1 1
1 i+ h  S& ]4 q5 V% U5 ^1 2 1 + P8 w9 a- H, a# p2 G$ {% k! l
1 3 3 1
0 u: r5 q0 ~6 |) ^3 E: t; b1 4 6 4 1
% R# R8 V* E6 s0 j; E1 5 10 10 5 1
. r" ]& x% |9 E' x( {$ G0 ?, M+ O2.程序源代码:   e, u6 K/ M4 S
main()
; X- }; t) X1 M" _) X  H" ]{int i,j;
/ p2 L/ j% D# W- |, ]. bint a[10][10];   {+ {, i: ]; a: k3 x
printf("\n");
+ p! Y  c4 z$ K0 l+ w/ Hfor(i=0;i<10;i++)
4 @5 ?% o6 ?: z, I; o' Y{a[0]=1;
3 `. j( A) y6 u- ra=1;} 7 X0 \5 T( Q5 [* y6 ~" H1 H9 R. C
for(i=2;i<10;i++)
' J, {4 l  U( f! Y4 D% p" ofor(j=1;j a[j]=a[i-1][j-1]+a[i-1][j]; * P8 S" i, X3 b8 r
for(i=0;i<10;i++) ) f! q. D- ~- A) f/ g
{for(j=0;j<=i;j++)
3 j, T+ H( N) \9 R  @, Xprintf("]",a[j]); ( Q" }- l0 E5 `1 a% s+ M
printf("\n"); 7 V6 j3 z& R& J5 n3 b# _
}
5 H+ ?+ J1 k7 H0 K$ |5 B} 5 T& b+ P( A1 G) o# K! r
============================================================== & H4 w$ g0 G4 n7 ~) y3 h
【程序62  ?. K- @: W( t# x
题目:学习putpixel画点。
6 a& r& {5 Z: P( u1 H1.程序分析: * I  D+ j- U- e1 ]5 G* V% y% p
2.程序源代码: 8 W$ x) _6 Z4 V/ d9 h
#include "stdio.h"
3 V6 }9 a  `( A( T0 L7 n#include "graphics.h"
8 v7 m* @4 d& k2 g  g6 @& F/ Wmain() : _7 U1 R3 B# m+ S/ _/ v1 @+ J9 z
{ 8 I$ g* r* \) l- L6 H; L: P' n$ M# n# Z) y
int i,j,driver=VGA,mode=VGAHI; ) P/ x3 |; c) \/ g
initgraph(&driver,&mode,""); ! S1 m" q9 S) q# {
setbkcolor(YELLOW); # R8 q; k4 d2 V- j9 E
for(i=50;i<=230;i+=20)
# C+ E2 }% a$ ]for(j=50;j<=230;j++) 8 q# ~0 X* M( I; T. D9 H% b
putpixel(i,j,1); ' ]0 }" W2 Q2 d& ~" _
for(j=50;j<=230;j+=20) 1 Y9 ]; m7 v: Z# o& k
for(i=50;i<=230;i++)
; Z! {# i8 _( k% I/ ]$ ^1 t9 iputpixel(i,j,1);
1 Q6 _- P4 L9 e  k6 O+ Q( X- d} - I9 S, ?4 \' |5 g2 G) D+ H
============================================================== + D# D# q  ?5 A2 c- e4 ^
【程序630 [4 \# G" W; e' u0 x5 p
题目:画椭圆ellipse
$ G* f2 x# w. ~6 G1.程序分析:
! ^5 u) r, P' s' k: t( D2.程序源代码:
) p5 E' o% t+ ~6 c9 Q* u, @#include "stdio.h" 3 f6 O9 O/ \5 a* w2 r
#include "graphics.h" ! D* a; n! U& S0 q
#include "conio.h" & r& h& E" K3 ]
main()
& |, R) Y, u$ f{ 7 d9 I% T1 Y" Z3 l  B1 P& h
int x=360,y=160,driver=VGA,mode=VGAHI;
  H6 Z: {' L! ?5 d! m: y9 Mint num=20,i; - n2 I" y. n  b& z) P% d# H. H
int top,bottom;
+ M0 @3 _' g1 _0 k8 l3 f6 vinitgraph(&driver,&mode,"");
6 M) S2 c5 \: X( ]$ `5 y! A% ?$ gtop=y-30; 0 s- }: S. V) }& C7 V. |$ X: f
bottom=y-30; 0 w5 J7 B, ~5 c% H
for(i=0;i{
8 ~' k, G, c: E3 Xellipse(250,250,0,360,top,bottom); / Q: T- \/ }% m$ T! Z4 }) }: C
top-=5; 7 u* Y, C2 }) P
bottom+=5; . W# S" W% W! w* f# p3 B
} & a3 L% n  u, b2 s1 j. H
getch(); ( o  f! ~+ `! @6 b/ o# I
}
8 N, B. i, Q! g' q, [6 w) Q============================================================== ' Z2 K6 q! z$ W2 D
【程序64
$ H& E: ]% B  r/ T) X$ d! N题目:利用ellipse and rectangle 画图。
; M5 e- x  c7 y" w( H) ]1.程序分析: 3 _2 }8 D5 Z" Y& }: ?6 e
2.程序源代码:
+ |& z9 |' X+ M7 }3 z* Q3 u#include "stdio.h" ( F! l/ G" N% W4 F2 k
#include "graphics.h"
+ H# {! x: t* Q  w#include "conio.h" 9 h* i. A  b  N* P2 H( Y
main()
7 {! |9 i6 i5 f* F% _7 e; |{ 8 D# a) i& U# k  S. K" W
int driver=VGA,mode=VGAHI; * A+ u8 I% |% i+ }8 [
int i,num=15,top=50; 2 R9 E" H: J) h
int left=20,right=50; % T" D% o" t+ R% [' K+ r
initgraph(&driver,&mode,"");
8 p/ {/ F! c& D% P+ Z; qfor(i=0;i{ 9 ~& v2 r9 m9 Q5 k3 s
ellipse(250,250,0,360,right,left); 5 B1 o: m' S- \7 _+ L" A% @
ellipse(250,250,0,360,20,top); 3 B/ c) z! ~* |  O% f: m  q$ `
rectangle(20-2*i,20-2*i,10*(i+2),10*(i+2)); ( H, A; Y6 k, ?( t
right+=5;
6 T2 n2 \( W0 B. Lleft+=5; 1 g1 q$ T- n9 H- F
top+=10;
( `) \& Z# Q" x$ n) c' d- H} ) x+ i. i& o+ G' T. X
getch();
- ?. d4 `* Y6 ^: u" N* R0 T/ N4 ]}
$ U5 [8 D% Y! N4 u" A============================================================== 3 W' p1 E, }" Z0 K' {
【程序65: I; O/ d; W" I4 N7 m# L" n
题目:一个最优美的图案。 & s8 R  a+ G2 H- Z
1.程序分析:
7 Y5 }5 c! S/ b( J2.程序源代码: 0 @5 W  P( n* G" {( h: X4 Q
#include "graphics.h"
: L, A4 R  X5 O$ ?/ f/ x) l#include "math.h"
5 v" N% p2 m) p% s- l) s#include "dos.h" " r6 w/ P4 Y) {: t9 }' g
#include "conio.h" 5 E# W5 d9 [  s1 s2 Y
#include "stdlib.h" " O& _  f7 C& @7 Q; W. e
#include "stdio.h" 5 `* \; R% R0 d
#include "stdarg.h"
2 {$ s5 ~. B+ @  s0 S/ O#define MAXPTS 15
6 O4 ?  O+ n9 s#define PI 3.1415926
- }. a; {# B$ m8 |" P( x7 d, Nstruct PTS { 9 Z# p$ ?" m2 @7 }3 c
int x,y;   y& H2 y" }& a& k0 U0 V
};
' u2 Q0 ^$ Z" _( i. Y% J' Rdouble AspectRatio=0.85; 8 U( x5 u0 p% ?$ p' g
void LineToDemo(void) * R5 g: ]* F3 e/ F8 W
{ 9 d6 ~: C# ]/ `6 x
struct viewporttype vp;
/ ~( C/ j* Z: P$ A9 ~struct PTS points[MAXPTS];
1 |9 A1 [4 @  x3 B# mint i, j, h, w, xcenter, ycenter; 8 m% t* [; z9 @: X; X1 p
int radius, angle, step; 2 K% S0 h2 G& ^) C4 }- w
double rads;
1 F2 K% y8 F: T/ g$ V) dprintf(" MoveTo / LineTo Demonstration" );
1 ~3 b$ t+ l( q, y0 c! I3 S* Fgetviewsettings( &vp );
* F6 P+ ~# v+ ~" s& H. x. dh = vp.bottom - vp.top; 5 C) k% q% F9 k) A( {0 S* ^$ x- M
w = vp.right - vp.left;
6 l0 j0 F$ j' u/ P$ \- Zxcenter = w / 2; /* Determine the center of circle */
3 q& ~7 N1 N# H" G8 h' b% Fycenter = h / 2;
9 W( ^$ I  P. ?5 z+ rradius = (h - 30) / (AspectRatio * 2); - A6 P1 R' J0 P$ s1 \; f8 w& Z1 E
step = 360 / MAXPTS; /* Determine # of increments */
' ~2 x' {- |* D) mangle = 0; /* Begin at zero degrees */
6 f0 a% G+ t  G' lfor( i=0 ; irads = (double)angle * PI / 180.0; /* Convert angle to radians */ 1 T7 C( S: J; E9 k! P
points.x = xcenter + (int)( cos(rads) * radius ); , `2 T4 w8 D: T, O& E0 J
points.y = ycenter - (int)( sin(rads) * radius * AspectRatio );
. a1 z) O& O# Aangle += step; /* Move to next increment */
# {1 y( `' |* ]" s5 B}
8 V7 F' d* M3 N+ L3 qcircle( xcenter, ycenter, radius ); /* Draw bounding circle */ ( S1 q& z9 C$ N' z
for( i=0 ; ifor( j=i ; jmoveto(points.x, points.y); /* Move to beginning of cord */ $ ~2 S$ P6 o3 y8 C, T  U5 r
lineto(points[j].x, points[j].y); /* Draw the cord */ 9 Q/ R5 m0 x% C4 e* }( C; z
} } } ) X9 W# B' e( o) I
main() * `5 m9 B" L- C- r' I: u
{int driver,mode; $ D9 Y3 \  v- O' j; m* e% M! {# n
driver=CGA;mode=CGAC0;
" M' X* _/ q* w+ o( t( m! [initgraph(&driver,&mode,"");
' _2 v/ F1 d" W3 [# {setcolor(3);
- v- g+ O2 \' f+ O- M0 Ssetbkcolor(GREEN); 4 y: \  v+ l6 C: t* f
LineToDemo();} 7 o3 C& \" ?: s5 S' K) V
============================================================== # J- T* a3 s& ]; C
【程序66( p* w8 K% F6 ^1 l
题目:输入3个数a,b,c,按大小顺序输出。 6 f: v+ x- M; ~
1.程序分析:利用指针方法。 6 }7 S( g7 s9 F
2.程序源代码:
4 r% a5 Q, Q0 S- C5 ~/*pointer*/ 2 o4 @$ m( o% h5 c7 P% S% ^# M
main() ) A: i4 u& y7 t' n( t- o
{
: X  W. i6 b2 E3 D; Aint n1,n2,n3; 3 q4 ^6 y7 ]) b' [; Q
int *pointer1,*pointer2,*pointer3; 6 Q+ S0 M2 G/ _+ E  ?. H; p
printf("please input 3 number:n1,n2,n3:"); / `8 [: n( e: S3 T0 T
scanf("%d,%d,%d",&n1,&n2,&n3); " S- r* [* G$ S9 c8 }
pointer1=&n1; $ D/ O4 h- }; e$ ~# U
pointer2=&n2;
* f0 u' a- U0 M: G4 n7 H4 Q- Wpointer3=&n3; - c2 H! }' w+ ~7 I2 N" D+ `0 n
if(n1>n2) swap(pointer1,pointer2); ; h, l2 Y3 d8 Y+ j0 S
if(n1>n3) swap(pointer1,pointer3); 0 R. v' |( r! [4 }( ?7 [
if(n2>n3) swap(pointer2,pointer3);
/ a" m9 t  v8 `1 L$ u9 g# Aprintf("the sorted numbers are:%d,%d,%d\n",n1,n2,n3); & D! h+ J& q1 n
} % N9 B1 k: q. R
swap(p1,p2)
" P8 z; D! x: gint *p1,*p2;
! A/ ]( m+ S' R{int p; ) T; n+ |1 d) }! T& K  ?$ X; L- e$ m
p=*p1;*p1=*p2;*p2=p;
5 a8 h+ m( c4 ?$ `7 o0 {} $ y4 K5 y9 u5 B- E5 j0 ]
============================================================== 9 h+ r4 m3 C' r9 W
【程序677 x) J8 Y1 Z% A3 y6 r4 e
题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
: G; T, u! M6 L3 I9 {) o1.程序分析:谭浩强的书中答案有问题。 - C8 _# P  x% ^* l. `& z" q
2.程序源代码:
+ Y  ]/ |7 [3 J1 P. I6 I2 t0 a. Hmain()
+ e( R1 f0 O& `- O9 p{
6 m5 e$ \- ^. R1 x. k. [int number[10];
3 W. I3 F! T! u) m4 C  \input(number); # `, Y% U% a% s. Z
max_min(number); * h. h' L" F+ y' I! P
output(number);
, t( k0 e$ C: x- B% e( d3 a} 8 Y( \7 g4 Y% {1 }
input(number)
0 `4 u8 r8 |, T7 U% z5 sint number[10];
$ q  W( T7 R4 m9 S. P% e! G0 W) k{int i;
4 H# V7 T$ B3 y. zfor(i=0;i<9;i++)
8 _: B$ ]% `% b) E; \scanf("%d,",&number);
% c  q" P2 c- w# ~scanf("%d",&number[9]); ( @$ t" T2 U) I3 b' l# H
} : B5 X. ~0 ^. z" j
max_min(array) 9 T/ H7 n' d3 q6 z( Y9 N* N
int array[10];
) I; E! o* g+ N" p! j* \  W* S% O{int *max,*min,k,l;
, \9 A$ d$ ^' }% C* |4 Rint *p,*arr_end;
0 z5 t+ M/ T- K2 e. Q# harr_end=array+10;
' G  m, ^0 C- ~8 @1 q! }, n- dmax=min=array;
" k. n: g3 T. s9 Kfor(p=array+1;p if(*p>*max) max=p; 3 O% ~  |7 W8 Y" V5 W' V
else if(*p<*min) min=p; 2 E0 @9 A" ~( C9 S
k=*max; 4 X) e- {$ h0 C+ {
l=*min;
# }8 _( d( h2 `* d*p=array[0];array[0]=l;l=*p; 9 y6 C. Y( E& R" a5 ~2 ~% P/ F
*p=array[9];array[9]=k;k=*p; 3 r  ?& O6 l6 A7 P$ |
return;
% Z# L- @# s  A# v+ i} . l7 V- l3 D; a( i
output(array) * g5 ?  H& J1 P" w" N3 `
int array[10];   ?& ]0 G( B$ F$ L. {" r( C3 {/ y4 w
{ int *p; $ r& m1 I' e1 [6 }+ Y5 j' f
for(p=array;p printf("%d,",*p);
. X* O, o3 b8 Xprintf("%d\n",array[9]); $ e! K+ d- [+ _! L6 C0 K
} ; g/ G$ S' i/ ?3 q+ e# J) D5 q
============================================================== - ]+ k5 A! L4 e5 ^( S
6 i+ r  x) X/ {, y3 L+ \
分享到:  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 18:04 , Processed in 0.061051 second(s), 32 queries , Gzip On.

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

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

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