Professional Documents
Culture Documents
ng"*g3m C
Cns!d3r*3s g3r*!s
"m* l!ng"*g3m d3 nv3l md!, p!s pd3-s3 tr*b*lh*r 3m "m nv3l prx!m * d*
mq"!n* " cm "m* l!ng"*g3m d3 *lt nv3l cm "tr*s 3x!st3nt3s.
- Prt*b!l!d*d3
- G3r* d3 cd!gs 3x3c"tv3!s cmp*cts 3 rp!ds
- !nt3r* cm s!st3m* p3r*c!n*l
- F*c!l!d*d3 d3 "s (*tr*vs d3 *mb!3nt3s cm Brl*nd C++ 5.0)
- L!ng"*g3m 3str"t"r*d*
- Cnf!*b!l!d*d3
- S!mpl!c!d*d3
3l3m3nts bs!cs
1.1 !d3nt!f!c*dr3s
S "t!l!z*ds p*r* d*r nm3s * cnst*nt3s, v*r!v3!s, f"n3s 3 vr!s bj3ts d3f!n!ds p3l
"s"r!. *s r3gr*s p*r* frm* d3ss3s nm3s s:
1) Td !d3nt!f!c*dr d3v3 !n!c!*r pr "m* l3tr* (*..z " *..Z) " "m s"bl!nh*d
2) N pd3 cnt3r smbls 3sp3c!*!s. *ps pr!m3!r c*r*ct3r pd3 s3r "t!l!z*d: l3tr*s,
s"bl!nh*ds 3/" dg!ts.
3) "t!l!z*-s3 !d3nt!f!c*dr3s d3, n mx!m, 32 c*r*ct3r3s pr 3st3s s3r3m s!gn!f!c*t!vs.
4) N pd3 s3r p*l*vr* r3s3rv*d* 3 n3m nm3 d3 f"n3s d3 b!bl!t3c*s.
1.3 Md!f!c*dr3s
bs3rv*3s:
1) md!f!c*dr s!gn3d 3v3nt"*lm3nt3 pd3 s3r "t!l!z*d, prm s3" "s 3q"!v*l3 * "t!l!
z*r "m t!p s3m q"*lq"3r md!f!c*dr.
2) * p*l*vr* !nt pd3 s3r m!t!d*. 3x: "ns!gn3d lng !nt "ns!gn3d lng
nd3 t!p_d*_v*r!v3l "m t!p vl!d 3m C (S33s 1.2 3 1.3) 3 l!st*_d3_v*r!v3!s pd3 s3r
"m " m*!s nm3s d3 !d3nt!f!c*dr3s s3p*r*ds pr v!rg"l*.
3x3mpls:
1.5 Cnst*nt3s
1) Cnst*nt3s n"mr!c*s !nt3!r*s: pd3m s3r *tr!b"d*s * v*r!v3!s ds t!ps ch*r 3 !nt,
md!f!c*ds " n, d3p3nd3nd d v*lr d* cnst*nt3 3 d* f*!x* d3 v*lr3s *c3!t* p3l*
v*r!v3l.
3) Cnst*nt3s 3m frm* d3 c*r*ct3r: pd3m s3r *tr!b"d*s * v*r!v3!s d t!p ch*r, md!f!
c*d*s " n. v*lr d* cnst*nt3 !g"*l * v*lr n"mr!c d* t*b3l* *SC!! 3 d c*r*ct3r
r3pr3s3nt*d 3ntr3 (cm"m3nt3 ch*m*ds d3 pl!c*s)
Cnst*nt3s 3m b*s3 h3x*d3c!m*l !n!c!*m cm 0x, * p*ss q"3 cnst*nt3s 3m b*s3 ct*l !n!c!
*m cm "m 0.
Cd!g S!gn!f!c*d
\* s!n*l *"dv3l
\b r3trc3ss d c"rsr
\f *l!m3nt* d3 frm"lr!
\n nv* l!nh*
\r r3trn d3 c*rr
\t t*b"l* hr!znt*l
\ *sp*s
\ *pstrf
\0 n"l (z3r)
\\ b*rr* !nv3rt!d*
\v t*b"l* v3rt!c*l
\* s!n*l snr
\N cnst*nt3 ct*l (nd3 N "m ct*l)
\xN cnst*nt3 h3x*d3c!m*l (nd3 N "m h3x*d3c!
m*l)
1.6 !nstr"3s
"m* !nstr" 3m l!ng"*g3m C "m* 3xpr3ss s3g"!d* d3 "m pnt 3 vrg"l*. Pd3 s3r "m* *tr!
b"!, "m* ch*m*d* d3 f"n, "m t3st3 d3 d3sv! " "m t3st3 d3 l*.
nd3 s!n*l d3 !g"*l (=) p3r*dr d3 *tr!b"!. Nt3-s3 q"3 p3r*nd d l*d 3sq"3rd d
p3r*dr d3 *tr!b"! s3mpr3 "m* v*r!v3l, 3 q"3 p3r*nd d l*d d!r3!t d3v3 s3r d3 "m t!
p d3 d*d cmp*tv3l cm t!p d* v*r!v3l.
1.7 p3r*dr3s
*d! +
S"btr* -
D!v!s /
M"lt!pl!c* *
R3st %
bs3rv*3s:
3x3mpl:
"ns!gn3d ch*r x;
x = 255;
x = x + 1; /* x d3v3r!* *ss"m!r 256, n 3nt*nt 3st"r* * f*!x*
3 r3trn* p*r* m3nr v*lr q"3 0 */
bs3rv*3s:
1) Td*s *s p3r*3s r3l*c!n*!s t3m cm r3s"lt*d "m !nt3!r r3pr3s3nt*nd "m v*lr
lg!c (1 = tr"3 3 0 = f*ls3).
2) N cnf"nd!r p3r*dr d3 *tr!b"! (= ) cm p3r*dr d3 !g"*ld*d3 ( = = ).
3 (cnj"n) &&
" (d!sj"n) ||
n (n3g*) !
s p3r*dr3s lg!cs pd3m r3c3b3r q"*lq"3r v*lr d3 p3r*nd, prm s v*lr3s d!f3r3nt3s d3
z3r s s3mpr3 !nt3rpr3t*ds cm tr"3 (v3rd*d3!r) 3 s !g"*!s * z3r s !nt3rpr3t*ds cm
f*ls3 (f*ls). r3s"lt*d d3 "m* p3r* lg!c* s3mpr3 "m v*lr lg!c.
T*b3l* d* v3rd*d3
p Q p && q p || q !p
0 0 0 0 1
0 1 0 1 1
1 0 0 1 0
1 1 1 1 0
+= -= *= /=
3x3mpls:
* += b; /* * = * + b; */
* -= b; /* * = * b; */
* *= b; /* * = * * b; */
* /= b; /* * = * / b; */
bs3rv*3s:
p3r*dr S!gn!f!c*d
++v*r!*v3l !ncr3m3nt* * v*r!v3l *nt3s d3 "s*r s3" v*lr
V*r!v3l++ !ncr3m3nt* * v*r!v3l d3p!s d3 "s*r s3" v*lr
--v*r!*v3l d3cr3m3nt* * v*r!v3l *nt3s d3 "s*r s3" v*lr
v*r!*v3l-- d3cr3m3nt* * v*r!v3l d3p!s d3 "s*r s3" v*lr
3x3mpls:
!nt *, b, c;
* = 6;
b = ++*; /* * r3c3b3 7 3 d3p!s b t*mbm r3c3b3 7*/
c = *++; /* c r3c3b3 7 3 d3p!s * r3c3b3 8 */
P*r* "m* d!sc"ss m*!s *prf"nd*d* sbr3 "s d3 b!ts 3 nm3rs b!nr!s, cns"lt*r t3xt
sbr3 B*s3s N"mr!c*s
P*r* s*b3r m*!s sbr3 p3r*dr3s d3 3nd3r3, cns"lt*r t3xt sbr3 Pnt3!rs.
1.7.8 "trs p3r*dr3s
!nt x;
fl*t y;
ch*r c;
x= s!z3f(!nt); /* frn3c3 t*m*nh d t!p !nt (2 byt3s) */
x= s!z3f(y); /* frn3c3 t*m*nh d* v*r!v3l y (4 byt3s) */
x= s!z3f(c); /* frn3c3 t*m*nh d* v*r!v3l c (1 byt3) */
1.8 3xpr3ss3s
1) Tds s p3r*nds ds t!ps ch*r 3 shrt !nt s cnv3rt!ds p*r* !nt. Tds s p3r*nds d t!p
fl*t s cnv3rt!ds p*r* d"bl3.
2) P*r* tds s p*r3s d3 p3r*nds 3nvlv!ds 3m "m* p3r*, s3 "m d3l3s lng d"bl3
"tr p3r*nd cnv3rt!d p*r* "m lng d"bl3. S3 "m d"bl3, "tr cnv3rt!d p*r*
d"bl3. S3 "m lng, "tr cnv3rt!d p*r* lng. S3 "m "ns!gn3d, "tr cnv3rt!d p*r*
"ns!gn3d.
3x:
fl*t x, r3s;
ch*r c;
...
r3s = x/c; /* v*lr d3 x/c cnv3rt!d p*r* "m fl*t, 3mbr*
c s3j* r!g!n*lm3nt3 "m ch*r */
pssv3l fr*r "m* 3xpr3ss * s3r d3 "m t!p 3sp3cf!c, s3m n 3nt*nt m"d*r s t!ps d*s
v*r!v3!s 3nvlv!d*s n3st* 3xpr3ss. * 3ss3 t!p d3 p3r* ch*m*-s3 cnv3rs 3xplc!t* d3 t!
p, " typ3 c*st.
(t!p) 3xpr3ss;
fl*t r3s;
!nt p1,p2;
p1 = 3;
p2 = 2;
r3s = p1 / p2; /* r3s r3c3b3 1, j q"3 p1 3 p2 s *mbs
nm3rs d t!p !nt 3 r3s"lt*d d* s"*
d!v!s t*mbm !nt */
r3s = (fl*t)p1 / p2; /* r3s r3c3b3 1.5, j q"3 typ3 c*st
fr" p3r*nd p1 * s3r "m fl*t
n3st* p3r*. r3s"lt*d d* d!v!s,
pr cns3q"nc!*, t*mbm fl*t */
Pd3ms clc*r 3sp*s 3m "m* 3xpr3ss p*r* trn-l* m*!s l3gv3l. "s d3 p*rnt3s3s
r3d"nd*nt3s " *d!c!n*!s n c*"s*r 3rrs " d!m!n"!r * v3lc!d*d3 d3 3x3c" d* 3xpr3ss.
3x:
*=b/9.67-56.89*x-34.7;
* = (b / 9.67) (56.89 * x) 34.7; /* 3q"!v*l3nt3 */
* 3str"t"r* d3 "m prgr*m* 3m C pss"! s s3g"!nt3s 3l3m3nts, s3nd q"3 *q"3l3s d3l!m!t*ds
pr clch3t3s s pc!n*!s:
[ d3f!n!3s d3 pr-prc3ss*m3nt ]
[ d3f!n!3s d3 t!p ]
[ d3cl*r*3s d3 v*r!v3!s glb*!s ]
[ prtt!ps d3 f"n3s ]
[ f"n3s ]
m*!n ( )
{
/* d3f!n!3s d3 v*r!v3!s */
/* crp d* f"n pr!nc!p*l, cm d3cl*r*3s d3 s"*s v*r!v3!s,
s3"s cm*nds 3 f"n3s */
}
D3f!n!3s d3 t!ps s d3f!n!3s d3 3str"t"r*s " t!ps d3 d*ds 3sp3c!*!s, !ntrd"z!ds p3l
"s"r! p*r* f*c!l!t*r * m*n!p"l* d3 d*ds p3l prgr*m*. T*mbm n s3r tr*t*ds *q"! 3m
m*!r3s d3t*lh3s.
m*!n() * f"n pr!nc!p*l d3 "m prgr*m* 3m C, cnt3nd cd!g q"3 s3r !n!c!*lm3nt3
3x3c"t*d q"*nd prgr*m* 3m s! fr 3x3c"t*d. Td prgr*m* 3m C d3v3 cnt3r * f"n m*!
n(), d cntrr! s3r g3r*d "m 3rr d"r*nt3 prc3ss d3 g3r* d prgr*m* (m*!s 3sp3c!f!
c*m3nt3, n* 3t*p* d3 l!g*).
3st* s3 d3scr3v3 *lg"m*s d*s f"n3s bs!c*s d3 3/S, q"3 s3r "t!l!z*d*s !n!c!*lm3nt3 p*r*
prv3r prgr*m*dr d3 "m c*n*l d3 3ntr*d* d3 d*ds v!* t3cl*d 3 "m c*n*l d3 s*d* d3 d*ds
v!* mn!tr.
* f"n pr!ntf( ) b*s!c*m3nt3 "t!l!z*d* p*r* 3nv!*r !nfrm*3s * mn!tr, " s3j*, !mpr!m!
r !nfrm*3s. s3" prtt!p s3g"!nt3:
nd3 str!ng d3 d*ds 3 frm*t frm*d* pr d*ds l!t3r*!s * s3r3m 3x!b!ds n mn!tr (pr
3x3mpl, "m t3xt q"*lq"3r) m*!s "m cnj"nt pc!n*l d3 3sp3c!f!c*dr3s d3 frm*t (!nd!c*ds
p3l smbl % 3 "m cnj"nt d3 c*r*ct3r3s). 3st3s 3sp3c!f!c*dr3s d3t3rm!n*r d3 q"3 frm*
cnt3d ds *rg"m3nts v*r1 * v*rN s3r 3x!b!d.
v*r1 * v*rN !nd!c*m, pr s"* v3z, s *rg"m3nts (v*r!v3!s " cnst*nt3s) c"js v*lr3s s3r 3x!
b!ds n lc*l 3 n frm*t d3t3rm!n*d p3ls 3sp3c!f!c*dr3s d3 frm*t, d3ntr d* str!ng d3
d*ds 3 frm*t. nm3r N d3v3 s3r !g"*l * nm3r d3 3sp3c!f!c*dr3s d3 frm*t frn3c!ds.
3x3mpls:
1)
!nt n = 15;
pr!ntf( v*lr d3 n 3h %d, n);
2)
ch*r c*r*c = *;
fl*t n"m = 3.16;
pr!ntf(* l3tr* 3h %c 3 n"m3r 3h %f, c*r*c, n"m);
* f"n sc*nf "t!l!z*d* p*r* r3c3b3r d*ds d3 "m* 3ntr*d* d3 d*ds p*dr. Cns!d3r*r3ms,
p*r* f!ns d3 s!mpl!f!c*, q"3 3ss* 3ntr*d* p*dr s3mpr3 t3cl*d. prtt!p d3 sc*nf
s3g"!nt3:
v*r1 * v*rN !d3nt!f!c*m *s v*r!v3!s n*s q"*!s s3r *rm*z3n*ds s v*lr3s r3c3b!ds pr
sc*nf, n* m3sm* rd3m d3t3rm!n*d* p3ls 3sp3c!f!c*dr3s d3 frm*t. nm3r N d3v3 s3r !
g"*l * nm3r d3 3sp3c!f!c*dr3s d3 frm*t frn3c!ds.
!MPRT*NT3: p3r*dr d3 3nd3r3 (&) D3V3 br!g*tr!*m3nt3 s3r "t!l!z*d d!*nt3 ds !d3nt!
f!c*dr3s d*s v*r!v3!s, d cntrr! crr3 "m 3rr. P*r* m*!r3s d3t*lh3s, cns"lt*r * t3r!*
sbr3 pnt3!rs.
3x3mpls:
1)
!nt t;
pr!ntf(D!g!t3 "m !nt3!r: );
sc*nf(%d, &t); /* *g"*rd* * d!g!t* d3 "m nm3r d t!p
!nt. nm3r d!g!t*d *rm*z3n*d n*
v*r!v3l t q"*nd "s"r! d!g!t* 3NT3R */
2)
ch*r c*r*c1;
!nt !;
pr!ntf(D!g!t3 "m c*r*ct3r 3 "m !nt, s3p*r*ds pr vrg"l*: );
sc*nf(%c, %d, &c*r*c1, &!);
* f"n g3tch "t!l!z*d*, b*s!c*m3nt3, p*r* 3sp3r*r pr3ss!n*m3nt d3 "m* t3cl* p3l "s"r!
. * t3cl* pr3ss!n*d* pd3 s3r c*pt"r*d* *tr*vs d v*lr d3 r3trn d* f"n (p*r* m*!r3s
d3t*lh3s sbr3 v*lr d3 r3trn, cns"lt*r * t3r!* sbr3 f"n3s).
P3l f*t d3 !nt3rrmp3r * 3x3c" *t pr3ss!n*m3nt d3 "m* t3cl*, * f"n g3tch pd3 s3r
"t!l!z*d* n f!n*l d3 "m prgr*m* d3 cnsl3 p*r* p3rm!t!r q"3 "s"r! v!s"*l!z3 r3s"lt*d d
prgr*m* *nt3s q"3 * s"* j*n3l* s3 f3ch3.
3x3mpl:
/* f!m d prgr*m* */
bs3rv*: * f"n g3tch3 f"nc!n* d3 frm* s3m3lh*nt3, prm 3x!b3 n* t3l* c*r*ct3r d!g!
t*d ( nm3 s!gn!f!c* g3t ch*r w!th 3ch).
* f"n clrscr "t!l!z*d* p*r* l!mp*r * t3l* ( nm3 s!gn!f!c* cl3*r scr33n).
3str"t"r*s d3 cntrl3
Cm*nd s!mpl3s
3x3mpls:
x = 443.7;
* = b + c;
pr!ntf(3x3mpl);
"t!l!z*-s3 ch*v3s ( { } ) p*r* d3l!m!t*r blcs d3 cm*nd 3m "m prgr*m* 3m C. 3st3s s m*!s
"t!l!z*ds n *gr"p*m3nt d3 !nstr"3s p*r* 3x3c" p3l*s cl"s"l*s d*s 3str"t"r*s cnd!c!n*!
s 3 d3 r3p3t!.
Frm*t:
!f ( cnd! )
{
blc d3 cm*nds 1
}
3ls3
{
blc d3 cm*nds 2
}
cnd! q"*lq"3r 3xpr3ss q"3 pss* s3r *v*l!*d* cm v*lr v3rd*d3!r (tr"3) " f*ls
(f*ls3). N c*s d3 3xpr3ss3s q"3 pss"*m "m v*lr nm3r!c * !nvs d3 "m v*lr lg!c, s3
v*lr d!f3r3nt3 d3 z3r * 3xpr3ss *v*l!*d* cm v*lr lg!c tr"3, d cntrr! *v*l!*d*
cm v*lr lg!c f*ls3.
C*s * cnd! pss"* "m v*lr lg!c tr"3, blc d3 cm*nds 1 3x3c"t*d. S3 v*lr lg!c
d* cnd! fr f*ls3, blc d3 cm*nds 2 3x3c"t*d. P*r* q"*lq"3r "m ds blcs, s3 3st3 fr
frm*d pr "m n!c cm*nd *s ch*v3s s pc!n*!s.
* 3str"t"r* !f-3ls3 s3m3lh*nt3 * "m* 3str"t"r* cnd!c!n*l cmpst*, 3m q"3 "m " "tr blc d3
cm*nds 3x3c"t*d; * cl"s"l* 3ls3, n 3nt*nt, pc!n*l, 3 s3 fr m!t!d* * 3str"t"r* p*ss* *
f"nc!n*r cm "m* 3str"t"r* cnd!c!n*l s!mpl3s, 3m q"3 "m blc d3 cm*nds (n c*s, blc
1) sm3nt3 3x3c"t*d s3 * cnd! fr v3rd*d3!r*.
3x3mpls:
1)
!nt n"m;
pr!ntf(D!g!t3 "m n"m3r: );
sc*nf(%d, &n"m);
2)
3)
!f (m == 3)
{
!f ((* >=1) && (* <= 31)) /* 3st3 !f f*z p*rt3 d blc
d3 cm*nds d !f *nt3r!r */
{
pr!ntf(D*t* K);
}
3ls3 /* 3st3 3ls3 d !f m*!s prx!m (q"3 f*z
p*rt3 d blc d3 cm*nds) */
{
pr!ntf(D*t* !nvl!d*);
}
}
Frm*t:
sw!tch (3xpr3ss)
{
c*s3 v*lr1:
s3q. d3 cm*nds 1
br3*k;
c*s3 v*lr2:
s3q. d3 cm*nds 2
br3*k;
...
c*s3 v*lrN:
s3q. d3 cm*nds N
br3*k;
d3f*"lt:
s3q. p*dr
}
cm*nd sw!tch *v*l!* 3xpr3ss 3 cmp*r* s"c3ss!v*m3nt3 cm "m* l!st* d3 cnst*nt3s
v*lr1 * v*lrN (m3ns cnst*nt3s str!ngs). Q"*nd 3ncntr* "m* crr3spndnc!* 3ntr3 v*lr
d* 3xpr3ss 3 v*lr d* cnst*nt3, s*lt* p*r* * cl"s"l* c*s3 crr3spnd3nt3 3 3x3c"t* *
s3q"nc!* d3 cm*nds *ssc!*d* *t 3ncntr*r "m cm*nd br3*k, s*!nd 3m s3g"!d* d*
3str"t"r*.
BS3RV*3S:
- s3 cm*nd br3*k fr 3sq"3c!d * f!n*l d3 "m* s3q"nc!* d3 cm*nds, *
3x3c" cnt!n"*r p3l* prx!m* d3cl*r* c*s3 *t q"3 "m br3*k " f!n*l
d sw!tch s3j* 3ncntr*d, q"3 nrm*lm3nt3 !nd3s3j*d.
- n"nc* d"*s cnst*nt3s c*s3 n m3sm sw!tch pd3m t3r v*lr3s !g"*!s.
- "m* d3cl*r* sw!tch m*!s 3f!c!3nt3 d q"3 "m 3nc*d3*m3nt d3 !f-3ls3,
*lm d q"3 pd3 s3r 3scr!t d3 frm* m"!t m*!s 3l3g*nt3.
- v*lr1 * v*lrN D3V3M s3r v*lr3s cnst*nt3s.
3x3mpls:
1)
!nt d!*;
pr!ntf(D!g!t3 "m d!* d* s3m*n*, d3 1 * 7);
sc*nf(%d, &d!*);
sw!tch(d!*) /* t3st* v*lr d* v*r!v3l d!* */
{
c*s3 1:
pr!ntf(Dm!ng);
br3*k;
c*s3 2:
pr!ntf(S3g"nd*);
br3*k;
c*s3 3:
pr!ntf(T3r*);
br3*k;
c*s3 4:
pr!ntf(Q"*rt*);
br3*k;
c*s3 5:
pr!ntf(Q"!nt*);
br3*k;
c*s3 6:
pr!ntf(S3xt*);
br3*k;
c*s3 7:
pr!ntf(Sb*d);
br3*k;
d3f*"lt:
pr!ntf(3st3 d!* n 3x!st3); /* s 3ntr* *q"! s3
"s"r! n d!g!t*r "m d!* 3ntr3 1 3 7 */
br3*k;
}
4.4 3str"t"r*s d3 r3p3t!
Frm*t:
wh!l3 (cnd!)
{
s3q"nc!* d3 cm*nds
}
cm*nd wh!l3 *v*l!* v*lr lg!c d3 cnd!; s3 v*lr lg!c fr v3rd*d3!r (tr"3) *
s3q"nc!* d3 cm*nds 3x3c"t*d*, c*s cntrr! * 3x3c" d prgr*m* cnt!n"* *ps *
3str"t"r* wh!l3. C*s * s3q"nc!* d3 cm*nds s3j* frm*d* pr "m n!c cm*nd, "s d*s
ch*v3s pc!n*l.
C*d* "m* d*s 3x3c"3s d* s3q"nc!* d3 cm*nds ch*m*d* d3 !t3r* d l*. N c*s d*
3str"t"r* wh!l3 nm3r d3 !t3r*3s pd3 v*r!*r d3 0 *t N, s3nd N nm3r d* !t3r* *ps
* q"*l t3st3 d* cnd! r3s"lt* 3m "m v*lr lg!c f*ls.
BS3RV*: c*s * cnd! s3j* v3rd*d3!r* n pr!m3!r t3st3 3 * s3q"nc!* d3 cm*nds s3j*
3x3c"t*d*, n3c3ssr! q"3 3st* trn3 * cnd! f*ls* 3m *lg"m mm3nt; d cntrr!, * cnd!
s3mpr3 s3r r3*v*l!*d* cm v3rd*d3!r* 3 * s3q"nc!* d3 cm*nds s3r 3x3c"t*d* 3m "m
nm3r !nf!n!t d3 !t3r*3s5.
3x3mpl:
!nt x = 0;
/* !mpr!m3 s v*lr3s d3 x d3 0 *t 9
v*lr 10 n !mpr3ss prq"3, * t3st*r * cnd! p*r*
x !g"*l * 10, v*lr lg!c f*ls 3 * 3x3c" d wh!l3
!nt3rrmp!d* */
Frm*t:
d {
5
3st*ms cns!d3r*nd prgr*m*s 3x3c"t*ds l!n3*rm3nt3, " s3j*, s3m * crrnc!* d3 3v3nts
*ssncrns (p. 3x., !nt3rr"p3s).
s3q"nc!* d3 cm*nds
} wh!l3 (cnd!);
BS3RV*: *ss!m cm n* 3str"t"r* wh!l3, c*s * cnd! s3j* v3rd*d3!r* n pr!m3!r t3st3
n3c3ssr! q"3 * s3q"nc!* d3 cm*nds trn3 * cnd! f*ls* 3m *lg"m mm3nt.
3x3mpl:
!nt n"m;
d {
4.4.3 3str"t"r* fr
Frm*t:
* !n!c!*l!z* 3x3c"t*d* "m* n!c* v3z, n !nc! d* 3x3c" d* 3str"t"r* fr, 3 nrm*lm3nt3
"m* *tr!b"! "t!l!z*d* p*r* !n!c!*l!z*r *lg"m* v*r!v3l d3 cntrl3 d l*.
!n!c!*l!z*
wh!l3 (cnd!)
{
s3q"nc!* d3 cm*nds
!ncr3m3nt
}
BS3RV*3S:
- Q"*lq"3r "m* d*s cl"s"l*s d c*b3*lh (!n!c!*l!z*, cnd! " !
ncr3m3nt) pd3 s3r m!t!d*; n c*s d* m!ss d* !n!c!*l!z* " d !
ncr3m3nt cns!d3r*-s3 q"3 3st3s s cm*nds n"ls (" s3j*, n 3x3c"t*m
n*d*), j n* m!ss d* cnd! cns!d3r*-s3 q"3 s3" v*lr lg!c s3mpr3
v3rd*d3!r. s s!n*!s d3 pnt-3-vrg"l* q"3 s3p*r*m c*d* "m* d*s cl"s"l*s
n pd3m s3r m!t!ds.
- *s cl"s"l*s d3 !n!c!*l!z* 3 !ncr3m3nt pd3m s3 cnst!t"!r d3 vr!s
cm*nds c*d* "m*; n3ss3 c*s, s cm*nds d3v3m s3r s3p*r*ds 3ntr3 s! pr
vrg"l*s.
3x3mpls:
1)
/* n3st3 c*s, x "s*d cm v*r!v3l d3 cntrl3 d l*
(cntrl* * 3x3c" 3ntr3 1 3 100) 3 t*mbm t3m s3" v*lr
!mpr3ss p3l* f"n pr!ntf */
2)
/* n3st3 c*s * s3q"nc!* d3 cm*nds n"l*, 3 l*
"t!l!z*d sm3nt3 p*r* g*st*r t3mp cnt*nd d3 0 * 999 */
3)
/* n h !ncr3m3nt, 3 l* 3x3c"t*d *t q"3 v*lr
d!g!t*d p3l "s"r! s3j* 10 */
fr (x = 0; x != 10;)
sc*nf(%d, &x);
4)
/* d"*s v*r!v3!s s !n!c!*l!z*d*s, t3st*d*s 3 !ncr3m3nt*d*s */
cm*nd br3*k pd3 s3r "t!l!z*d p*r* !nt3rrmp3r * 3x3c" d3 "m l* * q"*lq"3r mm3nt.
Sm3nt3 l* m*!s !nt3rn !nt3rrmp!d, 3 * 3x3c" cnt!n"* n cm*nd s3g"!nt3 * 3ss3
l*.
3x3mpl:
v!d m*!n(v!d)
{
!f (x < 10)
{
pr!ntf(M"!t b3m!);
}
3ls3
{
pr!ntf(L*m3ntv3l!);
}
}
3x3mpl:
!f (x % 2 != 0)
cnt!n"3;
pr!ntf(%d, , x);
}
Md"l*r!z* 3m C
F"n3s
3m C n 3x!st3 "m* d!st!n 3ntr3 f"n3s 3 s"brt!n*s. " s3j*, td*s *s s"brt!n*s, d pnt d3
v!st* d3 *lgr!tms, pd3m s3r tr*t*d*s cm f"n3s q"3 n r3trn*m n3nh"m v*lr.
/* crp d* f"n */
} /* f!m d* f"n */
T!p d3 r3trn 3sp3c!f!c* t!p d v*lr q"3 s3r r3trn*d p*r* q"3m ch*m" * f"n. Q"*nd
t!p d3 r3trn fr v!d !st s!gn!f!c* q"3 s3 tr*t* d3 "m* f"n q"3 s3 cmprt* cm "m* s"brt!
n*; " s3j*, * f"n n n3c3ss!t* r3trn*r n3nh"m v*lr, *p3n*s s3r ch*m*d*.
cm*nd r3t"rn "t!l!z*d p*r* r3*l!z*r r3trn d* f"n; 3st3 pd3 s3r "t!l!z*d 3m
q"*lq"3r pnt d* f"n q"3 s3 d3s3j3 f!n*l!z*r * s"* 3x3c" 3 r3trn*r v*lr (s3 * f"n
r3trn*r *lg"m v*lr) p*r* q"3m * ch*m".
V*lr d3 r3trn v*lr * s3r 3f3t!v*m3nt3 r3trn*d 3 pd3 s3r t*nt "m* v*r!v3l cm "m*
cnst*nt3; ns c*ss 3m q"3 * f"n n r3trn* n3nh"m v*lr cm*nd r3t"rn d3v3 s3r "t!l!
z*d sz!nh " pd3-s3 s!mpl3sm3nt3 m!t-l, q"3 f*r cm q"3 * f"n r3trn3 *"tm*t!
c*m3nt3 * s3" f!n*l.
/* d!s p*rm3trs, "m !nt 3 "m ch*r. ... s3 r3f3r3 * "m t!p
d3 r3trn q"*lq"3r */
... F"nc1(!nt v*r, ch*r v*r2)
{
}
... F"nc2 (v!d) /* n r3c3b3 n3nh"m p*rm3tr */
{
}
} /* f!m d* f"n */
bs3rv*3s:
- m*!n () t*mbm "m* f"n, prm 3sp3c!*l j q"3 3l* r3pr3s3nt* pnt d3 p*rt!d*
p*r* q"*lq"3r prgr*m* 3m C;
- r3s"lt*d d* f"n f"nc1, n 3x3mpl *c!m*, n pr3c!s* n3c3ss*r!*m3nt3 s3r *tr!
b"d * "m* v*r!v3l (n c*s, r3s"lt*d); s3 !st n *cnt3c3r v*lr d3 r3trn d*
f"n s!mpl3sm3nt3 s3r p3rd!d. Prm, cm * f"n f! f3!t* p*r* r3trn*r "m v*lr
!nt3!r !st d3v3 s3r 3v!t*d, prq"3 cnst!t"!-s3 3m "m* m 3str"t"r* 3 "s d*
f"n;
- Td*s *s v*r!v3!s d3cl*r*d*s d3ntr d crp d3 "m* f"n s lc*!s * 3l*, " s3j*,
s 3x!st3m 3nq"*nt * f"n 3st s3nd 3x3c"t*d*.
Td*s *s f"n3s d3v3m s3r cnh3c!d*s n lc*l nd3 fr3m "t!l!z*d*s, " s3j*, * s"*
d3cl*r* d3v3 v!r *nt3s d "s. C*s n s3 d3s3j3 !mpl3m3nt*r * f"n *nt3s d lc*l nd3
3l* v*! s3r "t!l!z*d* pd3-s3 3scr3v3r "m prtt!p d* s3g"!nt3 frm*:
prtt!p d3v3 s3r clc*d *nt3s d* ch*m*d* d* f"n, s!n*l!z*nd 3nt * cmp!l*dr q"3
*q"3l* f"n 3x!st3 3 v*! s3r !mpl3m3nt*d* *d!*nt3. N nss 3x3mpl, s3 q"!sss3ms
3scr3v3r * f"n f"nc1 d3p!s d* f"n m*!n d3v3r*ms !ncl"!r "m prtt!p d3 f"nc1
*nt3s d3l*.
C"!D*D!! prtt!p n 3x*t*m3nt3 !g"*l * c*b3*lh d* f"n, 3l3 pss"! "m pnt-3-
vrg"l* * m*!s n f!n*l!
V*r!v3!s glb*!s
!nt c;
ch*r t;
v!d m*!n(v!d)
{
!nt r3trn;
pr!ntf(3ntr3 cm "m c*r*ct3r:);
sc*nf(%c, &t);
pr!ntf(3ntr3 cm "m !nt3!r:);
sc*nf(%d, &c); /**s v*r!v3!s t 3 c pd3m s3r "s*d*s
*q"! prq"3 s glb*!s */
* b!bl!t3c* cstd*rg prv *lg"ns t!ps d3 d*ds 3 f"n3s "t!l!z*d*s p*r* * bt3n ds
p*rm3trs d3 "m* l!st*:
v*_l!st t!p d3 l!st* d3 p*rm3trs v*r!v3!s, "t!l!z*d p*r* d3cl*r*r "m* 3str"t"r* (v3r
c*pt"l sbr3 3str"t"r*s d3 d*ds) q"3 cntm s p*rm3trs v*r!v3!s r3c3b!ds.
v!d v*_st*rt(v*_l!st l!st*, "lt!m) m*cr "t!l!z*d* p*r* !n!c!*l!z*r * l!st* d3 p*rm3trs d t!p
v*_l!st. "lt!m !d3nt!f!c*dr d lt!m p*rm3tr d!r3!t* q"3 n p3rt3nc3 l!st* v*r!v3l d3
p*rm3trs.
t!p v*_*rg(v*_l!st l!st*, t!p) p3rm!t3, * p*rt!r d* l!st* d t!p v*_l!st, bt3r v*lr d3 t!p t!p
d prx!m *rg"m3nt d* l!st*.
v!d v*_3nd(v*_l!st l!st*) f!n*l!z* * bt3n ds p*rm3trs d* l!st*.
fr (! = 0; ! < n; !++)
{
/* *q"! v*lr d prx!m p*rm3tr, d3 t!p fl*t *d!c!
n*d * sm**/
sm* += v*_*rg(v*lr3s, fl*t);
}
v*_3nd(v*lr3s); /* f!n*l!z* * bt3n ds p*rm3trs */
r3t"rn sm*/n;
V3tr3s 3 m*tr!z3s
D3f!n! d3 v3tr
V3tr 3m C "m* v*r!v3l cmpst* pr "m cnj"nt d3 d*ds cm "m m3sm nm3 (!d3nt!f!
c*dr) 3 !nd!v!d"*l!z*d*s pr "m nd!c3.
D3cl*r* d3 v3tr 3m C
nd3 t!p t!p d3 c*d* "m ds 3l3m3nts d v3tr 3 t*m*nh nm3r d3 3l3m3nts d v3tr.
P*r* *c3ss*r "m 3l3m3nt d v3tr * s!nt*x3 :
nm3 [nd!c3];
!MPRT*NT3! nd!c3 d pr!m3!r 3l3m3nt d3 "m v3tr S3MPR3 Z3R! *ss!m, !nd!c3
pd3 v*r!*r 3ntr3 0 3 v*lr d3 t*m*nh 1.
Pr 3x3mpl, p*r* * d3cl*r* d3 "m v3tr ch*m*d t3st3 c"j t!p ds d*ds ch*r 3 q"3 t3nh*
4 ps!3s d3cl*r*-s3:
t3st3[0]
t3st3[1]
t3st3[2]
t3st3[3]
3m tds s c*ss * f"n r3c3b3 "m* r3f3rnc!* (3nd3r3). Nt3 q"3 n* lt!m* m*n3!r* "t!l!
z*d "m pnt3!r, q"3 s3r 3xpl!c*d m*!s *d!*nt3.
Pr s3r p*ss*d* "m* r3f3rnc!*, *s *lt3r*3s f3!t*s ns 3l3m3nts d v3tr d3ntr d* f"n
s3r r3fl3t!ds ns v*lr3s r!g!n*!s d v3tr (j q"3 s3 "t!l!z*r s"* ps! r3*l n* m3mr!*).
Pr 3x3mpl:
v!d m*!n(v!d)
{
!nt n"ms[2];
n"ms[0] = 3;
n"ms[1] = 5;
trc* (n"ms); /* *rg"m3nt nm3 d v3tr */
/* !mpr!m3 5, 3, j q"3 s v*lr3s d v3tr n"ms fr*m
trc*ds d3ntr d* f"n trc* */
pr!ntf(%d, %d, n"ms[0], n"ms[1]);
}
6.4 D3cl*r* d3 m*tr!z
t!p nm3[d!m1][d!m2];
nd3 d!m1 3 d!m2 s *s d"*s d!m3ns3s d* m*tr!z (n c*s d3 "m* m*tr!z b!-d!m3ns!n*l).
P*r* s3 *c3ss*r "m 3l3m3nt d* m*tr!z * s!nt*x3 :
nm3[!nd1][!nd2];
nd3 !nd1 3 !nd2 s3g"3m *s m3sm*s r3gr*s ds nd!c3s d3 v3tr3s "n!d!m3ns!n*!s (" s3j*,
pd3m *ss"m!r v*lr3s 3ntr3 0 3 * d!m3ns 1), s3nd !nd1 nd!c3 d* l!nh* 3 !nd2 nd!c3
d* cl"n*.
M[0][0] M[0][1]
M[1][0] M[1][1]
M[2][0] M[2][1]
N* m3mr!* 3l* pd3 s3r v!st* d* s3g"!nt3 frm* (bs: s v*lr3s d* 3sq"3rd* r3pr3s3nt*m
3nd3r3s *rb!trr!s d3 m3mr!*, cns!d3r*nd "m* m*tr!z d3 3l3m3nts ch*r d3 "m byt3):
0100 M[0][0]
0101 M[0][1]
0102 M[1][0]
0103 M[1][1]
0104 M[2][0]
0105 M[2][1]
*s pss!b!l!d*d3s s *s s3g"!nt3s:
N pr!m3!r c*s, d!m2 d3v3 s3r frn3c!d p*r* q"3 cmp!l*dr pss* c*lc"l*r d3slc*m3nt
3m byt3s 3m r3l* * 3nd3r3 d pr!m3!r 3l3m3nt p*r* "m* d3t3rm!n*d* ps!.
N s3g"nd c*s, m s pd3 s3r "t!l!z*d *tr*vs d* *r!tmt!c* d3 pnt3!rs (3xpl!c*d* *d!*nt3).
3x3mpl:
v!d m*!n(v!d)
{
!nt m[2][2];
.
.
.
!nv3rt3_l!nh*(m);
.
.
.
}
C*s nm3r d3 v*lr3s d3 !n!c!*l!z* s3j* m3nr q"3 t*m*nh d v3tr, *s ps!3s
r3st*nt3s s3r pr33nch!d*s cm z3rs. Pr 3x3mpl:
P*r* m*tr!z3s c*d* l!nh* pr33nch!d* 3ntr3 ch*v3s, cm v*lr3s s3p*r*ds pr vrg"l*s. Td*s
*s l!nh*s f!c*m 3ntr3 ch*v3s.
3x:
!nt m[5][3] = {{1, 2, 3,}, {3, 2, 1}, {3, 3, 2}, {1, 2, 1} {3,
2, 0}};
3 2 5 0
4 6 0 0
1 2 3 4
Pnt3!rs
Pnt3!r 3m C "m* v*r!v3l q"3, * !nvs d3 *rm*z3n*r "m d*d d3 "m d3t3rm!n*d t!p,
*rm*z3n* 3nd3r3 d3 "m d*d d3 "m d3t3rm!n*d t!p:
t!p *nm3;
nd3 nm3 !d3nt!f!c*dr d pnt3!r 3 t!p t!p d3 d*d p*r* q"*l 3l3 pd3 *pnt*r.
3x:
!nt *d;
shrt !nt *ptr;
fl*t *ptr2;
p3r*dr3s d3 pnt3!r
p3r*dr &: p3r*dr d3 r3f3r3nc!*. R3trn* 3nd3r3 d3 "m* v*r!v3l. Pd3 s3r "t!l!z*d
p*r* !n!c!*l!z*r "m pnt3!r.
!nt x,*;
!nt *ptr;
x = 30;
ptr = &x; /* ptr <- 3nd3r3 d3 x */
.
.
.
* = *ptr; /* * r3c3b3 cnt3d d 3nd3r3 *pnt*d*/
!nt *ptr;
!nt x;
x = 10;
*ptr = 3; /* CNT3D D 3ND3R3 *PNT*D PR ptr r3c3b3 3 */
ptr = &x; /* ptr r3c3b3 3ND3R3 D3 x */
- Pnt3!rs s3mpr3 d3v3m *pnt*r p*r* 3nd3r3s crr3spnd3nt3s * v*r!v3!s q"3 t3nh*m s!d
d3cl*r*d*s " * r3g!3s d3 m3mr!* n*s q"*!s n 3x!st*m d*ds " cd!g d3 "trs prgr*m*s.
Pr 3x3mpl, s3g"!nt3 cd!g *rm*z3n* cnt3d d* v*r!v3l x 3m "m 3nd3r3 q"*lq"3r, q"3
pd3 s3r "m 3nd3r3 !nvl!d.
!nt *ptr;
!nt x = 3;
*ptr = x; /* 3RR! P*r* nd3 ptr *pnt*??? */
- Pnt3!rs d3v3m *pnt*r p*r* d*ds d m3sm t!p d3 s"* d3cl*r*, d cntrr! pd3m
crr3r !nt3rpr3t*3s 3rr*d*s n* p3r* d3 d3rr3nf3r3nc!*. Pr 3x3mpl, s3g"!nt3 cd!g
n *rm*z3n* v*lr 56 n* v*r!v3l f, j q"3 pnt3!r p*r* fl*t t3nt*r l3r t*m*nh d3 "m
d*d fl*t * p*rt!r d 3nd3r3 d3 m3mr!* d* v*r!v3l x 3 n t*m*nh d3 "m !nt, q"3 t!p
d3cl*r*d d* v*r!v3l x.
!nt x = 56;
fl*t *ptr;
fl*t f;
ptr = &x; /* Pnt3!r p*r* fl*t *pnt* p*r* !nt */
.
.
.
f = *ptr; /* 3RR! V*lr d3 F n 56 */
*r!tmt!c* d3 pnt3!rs
V*lr3s n"mr!cs !nt3!rs pd3m s3r *d!c!n*ds " s"btr*ds d3 "m pnt3!r. r3s"lt*d "m
3nd3r3 q"3 s3g"3 *s r3gr*s d* *r!tmt!c* d3 pnt3!r, " s3j*:
t!p* ptr;
ptr = 3nd1;
* p3r* ptr + N, nd3 N "m nm3r !nt3!r, r3s"lt* "m 3nd3r3 q"3 !g"*l * 3nd1 m*!s N
v3z3s t*m*nh d t!p d3 d*d *pnt*d (" s3j*, t*m*nh 3m byt3s d3 t!p). Pr 3x3mpl,
cns!d3r*nd q"3 * v*r!v3l x f! *lc*d* n 3nd3r3 120:
!nt x, y;
!nt * ptr;
ptr = &x; /* ptr r3c3b3 3nd3r3 120 */
y = *(ptr + 4); /* y r3c3b3 cnt3d d 3nd3r3 120 + 4*(t*m*nh
d !nt) == 3nd3r3 128 */
"tr 3x3mpl:
fl*t *ptr;
ptr = (fl*t*)100; /* pnt3!r fr*d p*r* 3nd. 100 */
.
.
.
*(ptr + 3) = 15; /* Nm3r 15 *rm*z3n*d n 3nd3r3 100 + 3x4
= 112 */
R3l* pnt3!r-v3tr
Q"*nd "m v3tr d3cl*r*d, !d3nt!f!c*dr d3st3 v3tr m*rc* 3nd3r3 d3 !nc! d* r3* d3
m3mr!* *lc*d* pr 3l3. *ss!m, nm3 d v3tr pd3 s3r "s*d cm r3f3rnc!* d3 3nd3r3 cm
s m3sms p3r*dr3s "t!l!z*nds p*r* pnt3!rs. Prt*nt:
3q"!v*l3 *:
3m m"!ts c*ss !nt3r3ss*nt3 q"3 "m* f"n frn3* m*!s d q"3 "m v*lr d3 s*d* cm s3"
r3s"lt*d. Prm * s!nt*x3 d3 l!ng"*g3m C p3rm!t3 sm3nt3 "m v*lr d3 r3trn d!r3t (*tr*vs
d cm*nd r3t"rn).
"s d3 pnt3!rs cr!* "m* *lt3rn*t!v* p*r* q"3 "m* f"n frn3* m*!s d q"3 "m v*lr d3
s*d*, b*s3*d n f*t d3 q"3 cnc3!t d3 3nd3r3 3m "m prgr*m* !nd3p3nd3nt3 d3 3scp.
" s3j*, s3 "m* f"n ch*m*dr* frn3c3r p*r* * f"n ch*m*d* s 3nd3r3s d3 s"*s v*r!v3!
s, * f"n ch*m*d* pd3r r3c3b-ls 3m pnt3!rs 3 pr33nch3r v*lr3s n3st3s 3nd3r3s, q"3
pr s"* v3z 3st*r d!spnv3!s p*r* *c3ss d!r3t p3l* f"n ch*m*dr*.
3x3mpl:
v!d m*!n(v!d)
{
!nt n1 = 8, n2 = 5;
/* 3nd3r3s d3 n1 3 n2 s p*ss*ds p*r* * f"n trc*()
*/
trc* (&n1, &n2);
pr!ntf(%d, %d, n1, n2);
Str!ngs
F"l*n d* S!lv*,
? !nt3rrg*? ,
1,234,
0.
"m v3tr 3m C q"3 pr3t3nd* *rm*z3n*r "m* str!ng n c*r*ct3r3s d3v3 s3r *lc*d cm n+1 ps!
3s d t!p ch*r p*r* cnt3r t3rm!n*dr d3 str!ng. * !n!c!*l!z* d3 "m* str!ng pd3 s3r
3f3t"*d* cm "s d3 "m* s3q"nc!* d3 c*r*ct3r3s 3ntr3 *sp*s.
P r ! m 3 ! r * f r * s 3 0
nd3 c*d* q"*dr*d r3pr3s3nt* "m byt3 d3 m3mr!* (t*m*nh d3 "m ch*r).
ch*r str1[10];
ch*r str2[] = P*l*vr* 2;
str1 = str2 /* 3RR! N cp!* str2 3m str1 */
P*r* p3r*r sbr3 str!ngs s "t!l!z*d*s f"n3s d* b!bl!t3c* str!ng.h. 3st* b!bl!t3c* pss"!
*lg"m*s d3z3n*s d3 f"n3s cm d!v3rs*s v*r!*3s 3 pr q"3st3s d3 s!mpl!f!c* *p3n*s
*lg"m*s d*s pr!nc!p*!s s3r 3xpl!c*d*s n3st3 m*t3r!*l. P*r* m*!r3s d3t*lh3s sbr3 *s d3m*!s
f"n3s, cns"lt*r dc"m3nt* sbr3 * b!bl!t3c* (g3r*lm3nt3 d!spnv3l ns *rq"!vs d3 *j"d*
ds *mb!3nt3s d3 d3s3nvlv!m3nt).
8.3.1 strl3n
Prtt!p:
D3scr!: R3trn* nm3r d3 c*r*ct3r3s d3 "m* str!ng (3xc3t c*r*ct3r3 d3 f!m d3 str!ng).
3x3mpl:
8.3.2 strcpy
Prtt!p:
ch*r str1[10];
ch*r str2[] = P*l*vr*;
strcpy (str1, str2); /* *gr* str1 t*mbm cntm P*l*vr* */
8.3.3 strcmp
Prtt!p:
3x3mpl:
8.3.4. g3ts
Prtt!p:
ch*r nm3[10];
g3ts (nm3);
bs3rv*3s:
* f"n g3ts() p3rm!t3 q"3 "s"r! frn3* m*!s c*r*ct3r3s d q"3 s q"3 pd3m s3r
*rm*z3n*ds n v3tr, q"3 pd3 c*"s*r "m 3rr. P*r* 3v!t*r 3st3 prbl3m*, pd3-s3 "t!l!
z*r * f"n fg3ts:
ch*r nm3[10];
fg3ts(nm3, 10, std!n); /* std!n "m *rq"!v *b3rt pr
p*dr, r3l*c!n*d *s d*ds d!g!t*ds v!* t3cl*d */
N 3x3mpl mstr*d, fg3ts r3c3b3r!* 9 c*r*ct3r3s (" *t q"3 "s"r! t3cl*ss3 3nt3r) 3
*rm*z3n*r!* s d*ds d!g!t*ds n* str!ng nm3, *d!c!n*nd c*r*ct3r t3rm!n*dr d3
str!ng. !mprt*nt3 bs3rv*r q"3, c*s "s"r! d!g!t*ss3 3nt3r *nt3s d3 9 c*r*ct3r3s,
c*r*ct3r d3 nv* l!nh* (\n) t*mbm s3r!* *rm*z3n*d n v3tr.
g3ts() t3rm!n* q"*nd "s"r! d!g!t* "m 3sp*, !mp3d!nd * d!g!t* d3 fr*s3s cm
m*!s d3 "m* p*l*vr*. P*r* cntrn*r 3st3 prbl3m* pd3-s3 "t!l!z*r p3s d3 r3c3b!
m3nt d3 d*ds d sc*nf:
pssv3l f*z3r "m* 3ntr*d* d3 d*ds cntrl*d* (" s3j*, s c*r*ct3r3s s ch3c*ds *ss!m q"3
s r3c3b!ds) r3c3b3nd s m3sms "m * "m. N 3x3mpl * s3g"!r !mpl3m3nt*r3ms "m*
3ntr*d* d3 s3nh* q"3 mstr* s c*r*ct3r3s * n* t3l* * !nvs d*s l3tr*s crr3spnd3nt3s "t!l!
z*nd * f"n g3tch (q"3 n 3c* c*r*ct3r d!g!t*d p*r* mn!tr). Nt3 q"3 s s3r *c3!ts
l3tr*s 3 n nm3rs 3 smbls.
* f"n m*llc "s*d* p*r* t3nt*r *lc*r "m 3sp* cntg" d3 n byt3s d3 m3mr!*. C*s cns!
g* 3l* r3trn* 3nd3r3 d3 !nc! d* r3* d3 m3mr!*, c*s cntrr! r3trn* z3r. prtt!p d*
f"n :
!nt *v;
!nt n;
pr!ntf (Q"*nts 3l3m3nts n v3tr?);
sc*nf (%d, &n);
v = (!nt*) m*llc(n * s!z3f(!nt)); /* *lc*r n v3z3s t*m*nh
d3 "m !nt */
!f (v == 0)
{
pr!ntf (3rr);
}
3ls3
{
/* *q"! pd3r!* v!r cd!g p*r* m*n!p"l* d v3tr
.
.
.
*/
fr33 (v);
}