【程序38】' G5 T8 `, y C, ^. j7 [: T
題目:求一個3*3矩陣對角線元素之和 : ?0 {6 `0 q( n/ [) ]' d6 m" m
1.程序分析:利用雙重for循環控制輸入二維數組,再將a累加后輸出。 _2 ` b; O7 \5 w
2.程序源代碼:
( c9 ]* }9 m. r0 ]main()2 o0 f7 A- Q( M% E3 P4 C
{5 l* Q+ S6 ]' J4 v+ T& N0 T* O3 L# `
float a[3][3],sum=0;8 j0 p9 f2 L, U
int i,j;* ~$ D M3 j* E0 R T. i
printf("please input rectangle element:\n");, X N! i( V9 `: o! F' c d7 E- x
for(i=0;i<3;i++)
9 j! z8 E8 r+ j for(j=0;j<3;j++)
# n f5 ]7 R2 C! W# K* a scanf("%f",&a[j]);
* v1 }5 t# P0 ^ G6 ^: V' P. Wfor(i=0;i<3;i++)
0 N0 i, A/ A! N2 o3 j! `& l sum=sum+a;
6 g+ q6 D- K$ \" u4 pprintf("duijiaoxian he is %6.2f",sum);
4 a: _. S4 U, Q/ m- `. m8 i3 c}* s" w: l1 b' ?3 T* G! `* ~
==============================================================; H( V7 I& [- ]/ t
【程序39】
) f$ c) m" L. g9 f5 f* T) V題目:有一個已經排好序的數組。現輸入一個數,要求按原來的規律將它插入數組中。- I, m/ X$ S( U# z/ k- S
1. 程序分析:首先判斷此數是否大于最后一個數,然后再考慮插入中間的數的情況,插入后0 C. n4 P4 i/ @! q
此元素之后的數,依次后移一個位置。 % l1 ?6 z. @- L8 a
2.程序源代碼:9 L. t; G7 V/ A, a, K4 k) F' C, ]
main()" u. B9 z5 Y& f
{
* E5 q0 V9 K, z# [2 m7 sint a[11]={1,4,6,9,13,16,19,28,40,100};. A* k M& u8 h! U0 n
int temp1,temp2,number,end,i,j;7 Z2 E. D) `3 n/ I7 C- J# ~0 N
printf("original array is:\n");. K2 j; e8 |" J! }( i
for(i=0;i<10;i++)) j" l- h, i- ^8 r) t) E
printf("%5d",a);
1 A6 N7 l! k/ g" U; O' c6 cprintf("\n");5 H% ~) L% z* e
printf("insert a new number:");: |3 `+ W; H% K# V! N
scanf("%d",&number);9 U1 r9 S* O8 v9 t
end=a[9];
! U4 R z! S3 g* eif(number>end)
+ \8 W9 O! Y, w9 L. I9 N. [ a[10]=number;# n( R& | ~' o3 j; ^( C1 q
else
( K# S& X# {6 } {for(i=0;i<10;i++)
1 e8 j( q3 ^: ~* R9 P' k) m { if(a>number)3 P1 H( B5 O+ s4 Q# s1 M* ~& e
{temp1=a;
3 O; c% ?1 a/ `3 i9 O4 u a=number;
; U# ~ x' t% Y- V for(j=i+1;j<11;j++)
* I2 Y8 b2 L( {/ i' b: M# ? {temp2=a[j];5 h+ M0 x) T3 }. X* @
a[j]=temp1;. C8 M7 r! j8 ^, N2 u7 X* }2 X
temp1=temp2;
3 P5 f5 L+ R" c3 j3 j }
: {, v( t/ C2 l, j8 W, u# T, n break;; P! \3 R1 |* k z% O
}. {8 F" o. K) h% u* E
}, G' X: ~' z; `; ~+ t
}+ u, s- C: R( W
for(i=0;i<11;i++)
: ~# ~+ |3 G( y: v printf("%6d",a);
- M) J7 E- ^9 _- X}% Q; [4 k( b$ g2 ?4 t3 y9 t
==============================================================( U" A+ B! i6 j2 ^
【程序40】) n z# f- @- j6 P A( F- H
題目:將一個數組逆序輸出。. T) Y7 J, U& E4 |$ S
1.程序分析:用第一個與最后一個交換。
0 [% P& d7 b& I2.程序源代碼:' C6 s- O, a8 b& o* Y" Y3 E, {7 k
#define N 5
; A/ S' J( T; O9 Rmain(). @. H# M. }" ]' a; q
{ int a[N]={9,6,5,4,1},i,temp;1 i+ p7 \2 ]* ~! r" N. n8 u
printf("\n original array:\n");
8 ] B- |0 I5 e _3 E. _ for(i=0;i printf("%4d",a);* e: e, ^% n7 [- m8 M) s. ~! A8 T# K
for(i=0;i {temp=a;* y7 |2 B: W8 @1 ]. t# U3 G
a=a[N-i-1]; s/ V; W. E/ J7 R6 O1 e
a[N-i-1]=temp;0 q$ ^# Y- b- T, U
}2 Z2 ?# ~9 ?2 D0 p
printf("\n sorted array:\n"); h4 p7 g- B3 \' A M/ T
for(i=0;i printf("%4d",a);
J! S( |5 q( Q" @} 【程序41信盈達嵌入式企鵝一一起嗚嗚吧久零紀要 】
- X: K$ j( H. D題目:學習static 定義靜態變量的用法
5 b3 d6 [: [& s7 F5 M/ N& }1. 程序分析:
$ m9 n/ E# c1 c' G" H* o$ y6 p; V2. 程序源代碼:
" H/ J4 W" F% r, E#include "stdio.h" - S/ _$ y" Z* r
varfunc() * k. k9 Z3 I% f$ f
{
, E6 V& [2 v5 L3 wint var=0; # X, P" [9 v: H7 M
static int static_var=0; 8 y# |, S, _1 K1 }
printf("\40:var equal %d \n",var);
1 P; |. f1 T! J+ I0 Uprintf("\40:static var equal %d \n",static_var); 5 g a2 i* d8 Y/ S/ I
printf("\n"); ' u: r3 k" k& E0 Q& T
var++;
- \: o8 {) }. w! u5 }% y: @static_var++;
: I" [ o2 @' W/ U/ P}
6 e. b+ W- M: ]/ i& n! Mvoid main()
/ ]/ c/ v; V; d: B{int i; ) Z1 @7 \ F+ M5 w+ B+ R7 a
for(i=0;i<3;i++)
- d0 o0 W( Z4 x" _; b$ h2 @" @. {; Uvarfunc();
# P' M7 ~ \7 e3 R b}
; }* X; K+ J3 a! T# ]==============================================================
/ T4 L) j9 r2 o【程序42 】
h7 a, k% I( {題目:學習使用auto 定義變量的用法 6 e! n, v1 q. K8 G
1. 程序分析: 8 k6 f# ~: [7 }9 s. u- O
2. 程序源代碼: ( N1 C: `; w: f. F, r/ ]; c8 n
#include "stdio.h"
1 u6 ^* v @- H1 i% [" xmain() ; C [/ i/ d3 o
{int i,num;
" j# ^: r' o; Z4 C1 F# _num=2; ! [# t% C! A3 b
for (i=0;i<3;i++)
$ u0 M8 _$ Q8 m3 Y{ printf("\40: The num equal %d \n",num);
% @6 L& a. _& v Ynum++;
7 P; X! Y3 `" }, @4 j3 B a{
|+ B; Z4 B; vauto int num=1; : u( o3 y3 c; H: l9 S& Q5 m7 |* P
printf("\40: The internal block num equal %d \n",num);
: {, R% \8 E: K) ~' Z( x! F5 wnum++;
5 i* c2 P* z) N" k. j! u# d. a}
" y6 O. U! A) g) c/ |; v}
, w! f3 t; r% f1 @8 \) X; H}
4 [% P5 Q9 i% `, q. m% V==============================================================
7 _8 A; G. }/ |5 w) q& H) `【程序43 】 & X2 t0 s+ M7 z# [0 L) k" i6 @
題目:學習使用static 的另一用法。 6 R) k" Z: K+ \* {/ a* c
1. 程序分析: 9 Y9 R9 W. s0 z% W/ T
2. 程序源代碼:
# C% U' E2 H" q7 R- ~: u4 S, d#include "stdio.h" 0 B; r s& o7 B4 k% Z1 [8 j
main() ' g) L, E/ x( J9 c7 s
{ 6 f* m' @3 d2 C8 l% R1 ~' s
int i,num;
+ q- ^* w5 _% }0 o2 r! @3 Wnum=2;
m5 x+ K( h V6 |' vfor(i=0;i<3;i++)
- p* E) W6 t9 h{
! \: z, {& \* O S; Mprintf("\40: The num equal %d \n",num);
9 a% ^! Q, ^, Cnum++; , j5 |7 C5 T9 I! _" M6 e1 o$ {* Q
{ $ o/ D9 S+ m. U; {) |
static int num=1;
, l( {* n5 |$ G8 J+ N& xprintf("\40:The internal block num equal %d\n",num); : D$ z& B9 T4 m' d; b M
num++; 7 L B/ `% m, G% q
} + q" J6 n0 P' ?3 g% ~" J
} & ?. m9 a1 ?3 f( d
}
- d/ F. e; ~6 M# w; J4 L" Z; V==============================================================
+ s* N' d2 C+ ~* z# A【程序44 】 . f+ \+ L k% t5 c$ c" f
題目:學習使用external 的用法。 4 k& ]1 Q' ?6 [5 K; D! _9 S
1. 程序分析: 9 @8 k M# I- C3 R" a D
2. 程序源代碼: 6 Z/ g2 }9 ~# M3 I y% M6 U
#include "stdio.h" 1 q. [5 W) G# ]0 q
int a,b,c; 6 x. e, {$ ^+ y$ z5 i
void add()
4 V: m- D1 i% i g* N, e4 @* D{ int a; * _, Y/ v5 I+ [) \9 v
a=3;
e! |5 c- b; W$ L7 G# H1 ]c=a+b; D3 c1 e" _" E0 G! M6 C
} 9 D7 ]4 x% `. S0 J A/ I* m
void main() ( L( r5 g' ^8 e
{ a=b=4; 8 {# D, F* H) i! s2 [
add();
$ @9 t3 w, M. n1 _# u. C/ j4 `printf("The value of c is equal to %d\n",c);
- B9 l! [! O. \, u) |! Q}
; J& d0 _6 b. P! h. [============================================================== % Q3 A0 e- ]. J0 _$ n
【程序45 】 & p3 L5 _2 F! t" P
題目:學習使用register 定義變量的方法。
1 c$ d/ B. Z+ g1. 程序分析:
x; N: n4 x0 B, n0 ^/ k, Y5 u2. 程序源代碼:
) S% z4 Z* Z9 ^& Z6 H7 o1 p8 |void main() ! D/ o: H* |# u+ |
{
: m1 O( Q3 B2 z* e( H4 fregister int i;
2 d7 K6 V# ?4 K4 U+ g/ ?1 C8 r( Uint tmp=0; 4 @: @+ u& [7 |5 q% D4 F# A
for(i=1;i<=100;i++)
1 U; {' b6 h4 G4 ltmp+=i;
5 Y! |5 A: V% L$ t% yprintf("The sum is %d\n",tmp);
: r' c* L6 |( o. V$ Z* r+ @}
% z8 j( T C0 P, e% l! k==============================================================
5 P, e3 C! ^; a& W9 M' q+ q5 |【程序46 】
; V w( U/ ?' B* g+ e4 q題目:宏#define 命令練習(1) , Z3 x& o* t7 c: ~7 {% j
1. 程序分析: 9 Y3 M! n& U$ X6 B5 G* m5 K
2. 程序源代碼:
; @$ q4 e! Q9 d( C; @6 H! \- k#include "stdio.h"
6 I" {0 e9 I/ u3 L2 z#define TRUE 1 & K2 r3 m) Z% C. Z& f
#define FALSE 0 , k; Z8 w7 T( c" E
#define SQ(x) (x)*(x)
7 P( x4 L" ?0 t: C/ Pvoid main() / O* E% l1 x, |) l q4 ~# Z3 r
{
( q" b& w0 O4 ?$ z) Aint num; 6 C1 T7 [0 u" m; g7 m% @+ m+ {
int again=1; " y) Y8 O5 J9 y: _
printf("\40: Program will stop if input value less than 50.\n"); ! _# P/ q+ B8 t3 {7 M6 C9 w6 S
while(again) ' E' o- [+ l1 Y2 Q0 z
{ % P" _/ ^0 u- m; P
printf("\40  lease input number==>"); " e$ E: ^# H0 c) `4 d H1 Y3 n
scanf("%d",&num); " ]0 \) U1 n$ s, a
printf("\40:The square for this number is %d \n",SQ(num));
# U& u1 j- e7 @( o# L& o& Xif(num>=50) $ T7 {* l3 F) u
again=TRUE; , q9 I, y# }* Y+ }
else + {, c, u2 o& U( ?! w2 |
again=FALSE; . S2 t4 P/ C' _0 Y! D: ]
} 4 l% K* T0 ~, y) i
} " F9 y* X9 d& h, }
============================================================== ' D7 J" Q4 T& D' D8 `
【程序47 】 * _; m: d$ A2 ?9 j
題目:宏#define 命令練習(2) + f" E$ d2 L. d
1. 程序分析: + f7 _2 z" \8 q6 o! c
2. 程序源代碼: 6 e+ K' V i+ j# l
#include "stdio.h"
6 v4 y0 O2 h! G5 L$ B/ W7 c#define exchange(a,b) { \ /* 宏定義中允許包含兩道衣裳命令的情形,此時必須在最右邊加上"\"*/
9 a r# Y% m F# {+ {+ Pint t;\ ! h5 G- }& @' p+ i' I2 p
t=a;\
! i* i1 U: J1 h4 d2 ~2 la=b;\ 2 C' L! r- y. B$ h# B; s4 o
b=t;\ 6 H- l& j: n8 x( V
} ) y( Z5 _% T9 m+ u
void main(void)
+ m& c$ Q9 |9 E8 \' m{
- C }" P6 z4 T1 s5 G: |int x=10;
8 c ?# c( r. ], t) J8 Kint y=20;
' B& K) l) S' N1 s. zprintf("x=%d; y=%d\n",x,y); * u9 t* `( V+ W0 P
exchange(x,y); ' A- o. H5 t: ^4 n
printf("x=%d; y=%d\n",x,y);
9 j3 W: M& V& s}
; H6 V3 J9 K0 j3 _1 \. V% W==============================================================
( A9 ?$ d" m4 |7 U3 U【程序48 】
4 t# K9 `% N% q$ [: l題目:宏#define 命令練習(3)
3 g# A$ B- N" ~* S* t5 i1 J1. 程序分析:
5 k' Q' V0 K* e1 n" Q8 y; r2. 程序源代碼:
( }6 N" {' t. m% V4 Y; w#define LAG > 8 q0 c" l- a" e* Z( Q
#define SMA < # {# v8 H/ e; o. j) T
#define EQ == " o |! R+ M4 R- h
#include "stdio.h"
6 l% f5 I- q# n y9 J% N' Zvoid main() ( s3 [3 e* n1 `0 {+ f' f
{ int i=10; ; U$ v6 j: H5 O! l' `
int j=20;
# v! F2 q: D; N' D3 z- qif(i LAG j) - l" g x9 d" K8 G
printf("\40: %d larger than %d \n",i,j); # ]& h+ y$ x/ @ {6 s+ X) ^
else if(i EQ j)
8 T! F6 o+ l$ Gprintf("\40: %d equal to %d \n",i,j);
( o& ~1 n; |% o6 ]* l! }else if(i SMA j) 0 Q8 R: V9 I( x, F* U+ u
printf("\40:%d smaller than %d \n",i,j); - _, @, @# c+ V" l& g& }5 Q
else 9 a3 A! P" D/ b/ A/ u
printf("\40: No such value.\n");
9 V0 t {3 c8 A% X" s# @; E" k; `}
: Q, `4 D+ @6 z============================================================== : F$ K0 Y7 M% ?5 }- U8 u! g; ]9 R$ X
0 c" T1 }! q' [) ~9 g( O |