EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
【程序38】
; p/ x1 x3 k) y7 U题目:求一个3*3矩阵对角线元素之和 & d; l, o; X. c
1.程序分析:利用双重for循环控制输入二维数组,再将a累加后输出。
! ?$ l i" H* D2 B( `2 Y3 I2.程序源代码:& @5 L& X; w- I$ o5 s
main()4 E9 V( F) G! D6 m; f1 f0 y
{
: Z- \3 g8 S8 V4 B) S+ |5 `float a[3][3],sum=0;
; T) ^8 E9 z& U4 f2 c2 nint i,j;3 R( |/ e" N3 U
printf("please input rectangle element:\n");# ^8 G" W0 X" j# O# X" P; }
for(i=0;i<3;i++)& v( H' X1 U2 |: I8 ?
for(j=0;j<3;j++)$ b6 E# S+ _9 ?- n
scanf("%f",&a[j]);' e# N) c, z* o7 M9 L- n* N( C
for(i=0;i<3;i++)
" ^( Y; [2 M5 b sum=sum+a;. }/ h6 E2 K/ i5 [' i: o* J
printf("duijiaoxian he is %6.2f",sum);
: z: Z' T4 j L9 r) X}
4 I& E9 A" T1 X/ y( R7 o! I, D==============================================================- O6 R% m! \/ E1 H3 }9 [
【程序39】2 j" W, _. [% e( u8 C- C
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。! E* A2 g$ P* I0 e" F& ]
1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后2 K q% }. r! ~( s8 Z1 V: x
此元素之后的数,依次后移一个位置。
2 m( F! g4 S2 k. m6 [6 C0 Q8 A2.程序源代码:
3 B! l3 L/ v* B7 L* F# hmain()
z& n, A& A# h1 P8 z9 x{
) S- l# |3 F1 M9 L$ v7 qint a[11]={1,4,6,9,13,16,19,28,40,100};+ c6 Z; Z& }! T: `% t
int temp1,temp2,number,end,i,j;
`' G2 B5 ?; m1 Cprintf("original array is:\n");
" p: ?- t8 K; C9 e O# cfor(i=0;i<10;i++)
+ t/ w4 \$ V0 z printf("%5d",a);. R, C2 U2 l1 D6 c/ }% b
printf("\n");
3 d& v3 H/ l1 u! t: e8 ~6 H% Qprintf("insert a new number:");
% S+ H" _3 ^3 Wscanf("%d",&number);
m/ |, x9 H! n5 [: }: v& K4 Mend=a[9];
- B+ k) n1 K$ ~( X* u7 |if(number>end)- K7 B* E* x4 D* m2 k" J+ H
a[10]=number;
0 {2 f/ g5 Q) d$ ~+ m" Nelse0 c7 @. ^7 I. X5 ^; ~5 M
{for(i=0;i<10;i++)
) W" A- V t8 Y( ?+ V+ {# K3 ?+ ? { if(a>number): Q8 q$ N) t3 `$ R
{temp1=a;- Z- s0 \$ e0 z8 G
a=number;
, p# l) G! [* _! A for(j=i+1;j<11;j++)( [/ p+ U J; f+ ~ \
{temp2=a[j];% b, Z( u% A8 Z* ]6 X2 D8 ]
a[j]=temp1;# I$ I" z% |8 Q9 T8 H% |
temp1=temp2;* t0 }4 w3 U3 k2 T
}. k6 p$ ~+ J0 K% \2 t2 Y/ a
break;7 n8 ?5 Z$ [4 \) W" l, N
}
t: [8 |% ?6 w% l/ Y$ `' I }8 J( I o5 w: a
}
7 h# C) A/ w- [for(i=0;i<11;i++)
6 V- u8 O2 N+ x6 U, W! e printf("%6d",a);) ^0 h6 V: z {3 S: w: ^1 q* ~" n2 {
}" x' Q# u1 @4 T! P. k, W2 C1 g8 ]
==============================================================
1 N' w p K( Z. y" J1 ?9 Q6 v- J7 W【程序40】7 l Z: M s+ H/ g/ N) T* }
题目:将一个数组逆序输出。4 e4 K0 m# U$ a1 X! t
1.程序分析:用第一个与最后一个交换。
1 @( C J3 j3 h6 L6 e/ d; d5 ?2.程序源代码:4 A, L& S8 g( n
#define N 5& m' J d( N% D6 v9 Z$ F' F% w& p
main()
# E- H$ r2 I! i2 c8 W6 I& X8 d: Q/ [2 G{ int a[N]={9,6,5,4,1},i,temp;7 N6 { Z7 M T; B
printf("\n original array:\n");8 _; l# [" i4 T" t5 q6 p5 H
for(i=0;i printf("%4d",a);3 q+ V# K# Z2 g8 Y8 z
for(i=0;i {temp=a;
5 O6 D7 {1 K* F" [% R3 `/ F9 [6 E a=a[N-i-1];5 z7 w4 Y6 E& `! Z5 B
a[N-i-1]=temp;
2 {% ^1 m e m }
k3 G/ ~- W' ]: Q5 O- j+ p, x! Lprintf("\n sorted array:\n");2 t+ h$ h' ?) _1 c6 h
for(i=0;i printf("%4d",a);
0 F ?, g* b% X {' {) s! a} 【程序41信盈达嵌入式企鹅一一起呜呜吧久零纪要 】 ) }/ K9 J; p$ ]3 B" v" g& _* L' A
题目:学习static 定义静态变量的用法 5 b2 U& c `1 ^! s: ?; H1 ~
1. 程序分析:
/ o8 Z$ O5 Q& {& j: \3 {7 G3 W2. 程序源代码:
; S* K; q& i. m7 b7 ?/ W#include "stdio.h"
. H; |! q% E. B* L7 M) }varfunc()
$ c7 L0 [4 w' y/ z" [{
" C& d$ p; C6 u* T9 e% aint var=0; ) @+ _5 M5 G/ X9 u0 s2 E% b/ n
static int static_var=0; 3 X. D$ G, P$ j4 @
printf("\40:var equal %d \n",var);
0 r! {! B! @ G- h: q' Sprintf("\40:static var equal %d \n",static_var); . l' u7 M$ @6 K
printf("\n");
/ A' N8 }" p1 p" f* D& A5 ] wvar++;
; Z/ G9 P8 v. E& }( D% ?static_var++; 3 g" K2 p3 F% A
}
) m& d, k; s/ Y0 J ^; Wvoid main()
- H$ F3 {) s/ H" K9 F{int i; 7 N; T2 I6 ^3 D* y3 X
for(i=0;i<3;i++)
' |, Z) o! F6 ?varfunc(); ! h5 P: P( ?# i( m
}
# y( M* g- r7 g, c F5 h============================================================== 8 O4 c# a @6 @* p& y$ ]
【程序42 】 ) d: i' G, N. ]/ D$ u0 K5 W
题目:学习使用auto 定义变量的用法
: Z: b4 S. r& E H. O. V4 e. y8 [1. 程序分析: 0 H; X) G! {& l; ]
2. 程序源代码:
. Q J+ ?' ]" K W, J- X#include "stdio.h" 7 g Y: M9 E' a" j; E# M
main() 9 n( `7 r2 m! @8 L. m" y) q
{int i,num;
$ |1 w P- d. Z. v3 ?num=2;
5 ]) v" c3 }. Rfor (i=0;i<3;i++) / N& _$ [+ e1 c! F, l3 {) c ]
{ printf("\40: The num equal %d \n",num); ! A' ~# P- X3 Y3 u
num++;
9 J7 j7 k- [# G{ ; x& P* K0 R* Q5 s8 u
auto int num=1;
1 k' w! \$ G) G7 e) A" G0 @' cprintf("\40: The internal block num equal %d \n",num); # [ k: V, j# C
num++; 6 @7 B1 T P: ^+ |- n5 R; {
} , Z5 V8 t! O2 X# y' \
}
: _0 O8 Y. z: l! ^6 G} 9 p |2 I: f7 t& V
==============================================================
+ M& [. G- C' Y2 H4 ]. [【程序43 】
' C" b6 o/ C7 e7 W* N3 G- S题目:学习使用static 的另一用法。 0 u l& p) Z% s3 h) Z/ a
1. 程序分析: 4 s# |1 ~3 r! i
2. 程序源代码: N$ L! z# v1 o8 K7 g2 B1 j
#include "stdio.h"
( S/ E& F) B' z1 Umain() ) { z! _8 Q% V6 t* P, P
{
/ P ?# R: l# }% L, Xint i,num; % x( Q: {+ B W0 ^4 V
num=2;
$ N* H' P$ V; j' i; B9 Gfor(i=0;i<3;i++) ! ?* y% E: R& c" _7 r: c; o
{
3 r7 V% v# p4 b7 lprintf("\40: The num equal %d \n",num); - ^6 O8 w: k2 u/ B- l0 Q o3 X
num++;
) Y7 S; V! D! o0 s" b8 H6 b{ 0 V* E% j6 |/ c2 f8 P! n
static int num=1;
' Q. A/ R9 F. ?" T5 Qprintf("\40:The internal block num equal %d\n",num); ; ^& K* e2 u) c5 \9 f' v4 S( D8 A
num++;
8 v2 h- a6 m/ r, l4 O} 5 ]# Y8 e" ^. ~5 p% v( h+ l
} 4 Y% h0 L& w/ k3 r
} - n+ R3 G8 S; M: O% n
============================================================== 5 q. g& Z" G! G: R
【程序44 】 ' Z1 d) b$ ^& q& F Z+ W
题目:学习使用external 的用法。
# E9 n7 ~( i& i% m1. 程序分析: + Y N% s) a+ f5 H
2. 程序源代码: : f6 @0 z# [1 p
#include "stdio.h"
3 @; F+ U$ j: Q+ I( k# Qint a,b,c; $ l! K8 e+ i$ j: g* e
void add()
1 a& T4 _. s* z9 j( Y: O: W; w{ int a; 4 q$ [% ]' W8 C
a=3;
% Q. Q' T1 ]& b# g# } Z" f6 U# pc=a+b;
w4 R5 }* [5 j2 ~+ N3 b7 C7 J1 M} & z' N3 f4 S+ y7 ~' Y4 T3 [5 E
void main()
7 _) h! |$ g% E) C- R{ a=b=4;
* }9 A- q e6 }1 b. _. ]add();
! L' t4 [' F3 N1 rprintf("The value of c is equal to %d\n",c); 7 e" ^6 q+ J' H6 g
} ( G. V. ^! c; J# B! k% v
============================================================== % Z+ b) h. ?! s1 ^5 ~# U" i
【程序45 】 & _8 Z4 [7 V) h7 P7 @' U) \7 K
题目:学习使用register 定义变量的方法。
K' k% [1 }) {# d1. 程序分析:
/ N7 F* }6 C' M' @6 e/ \2. 程序源代码:
8 B, {6 I$ {$ q/ {: Vvoid main() , U; ?7 x i3 t! t# N
{
9 Y, A# N) C6 \( c! t7 C% E4 oregister int i; 1 R8 \4 P/ H! B p- W% T5 u
int tmp=0; 2 J7 M2 N4 D) y8 m- N
for(i=1;i<=100;i++)
' K0 Z+ x: ?3 Ptmp+=i;
1 m1 x& S) Y- A* M' j1 w2 Wprintf("The sum is %d\n",tmp);
. d" s. u8 S3 Z9 M4 ?/ `}
* C, T9 Y. X9 Q0 h# R==============================================================
! x/ i1 z9 v; a3 s9 o【程序46 】 + }9 f4 j& o6 R/ N) G" Y
题目:宏#define 命令练习(1)
: m, s" R" @% k: @/ t4 I1. 程序分析:
+ p* B' @6 A& X8 {5 ~0 g# N2. 程序源代码:
) M5 C7 k$ e2 T9 D: J- j6 s4 j#include "stdio.h"
4 c$ i5 g8 [- C6 V" @% G#define TRUE 1 0 u( X) ~4 @" e: _
#define FALSE 0 . z! x0 u7 ` J; a. U O
#define SQ(x) (x)*(x)
- y( U3 e6 q6 b% ?. k4 E3 Hvoid main() # u# ?6 t- S; `$ Y; Z
{
' k2 Q! w) `; p) Z- m/ L) {int num;
5 m# r+ o; V( B9 l+ D5 }int again=1;
1 c$ h, @7 z6 n( E, a1 Vprintf("\40: Program will stop if input value less than 50.\n");
5 \7 ?+ {6 T+ U( H; Q# q. S/ B9 ~6 Mwhile(again) $ e% E; r" ~1 Q: Y8 m- B
{ @+ ?% m$ N; b' V
printf("\40 lease input number==>"); * U% m1 d3 g9 K: L+ |2 R* ?' d! i
scanf("%d",&num); ! @. t$ f! I. h7 n8 o1 c& M9 [4 y
printf("\40:The square for this number is %d \n",SQ(num));
# H+ b, r9 \9 U. s8 d w4 c4 c9 Gif(num>=50) $ h( N) }4 v7 V
again=TRUE; 6 _- R; p- \& H) u# ~7 I8 W2 Q
else \2 a. p7 H) i3 E0 b$ G
again=FALSE;
# o% F; h$ Z+ ~2 B1 m9 d# o2 U} + e1 O; v! t% _
} ! \" F3 g+ l% b6 G6 K; W
============================================================== B Y9 B7 x! l* I9 U6 M
【程序47 】 ; I- ^$ F- X, U* j' V* L
题目:宏#define 命令练习(2)
. t/ ^" k+ |) L! [ I# i, [1. 程序分析: , a' |2 `& i3 g
2. 程序源代码:
# H' [9 F+ g8 m! V/ N& z% W#include "stdio.h"
/ h+ r' c+ u2 d$ T! ^9 _1 d a#define exchange(a,b) { \ /* 宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上"\"*/
! m0 o8 G8 r7 s ?# B" Y' V0 Hint t;\
) A3 B- n" a5 v: _t=a;\
- Y4 C/ V0 p" \% N- u" u/ Na=b;\ $ M; c! N3 C: @& M- s
b=t;\
5 Z; ]8 {8 p$ f% |}
+ o) \6 X/ O* ?& f' ^void main(void) ( R, `8 ~ ^& f! X. Q6 g8 p3 Y
{ ! n, N; q1 H3 K6 x- x$ Q( _
int x=10; }- j6 `, p% [ G
int y=20; ( a0 P# X) V6 W6 x/ ~5 `
printf("x=%d; y=%d\n",x,y); h0 Y- v) U. ?! J& B2 }
exchange(x,y);
2 |% U3 N1 M' e! \7 T1 a1 Vprintf("x=%d; y=%d\n",x,y);
% M' e! q# G; [0 c4 w9 c} * d8 I8 w5 @; g
============================================================== - p% k6 F* D( D7 u) v% S( Z3 Z
【程序48 】 # y2 _( I; T( ?! H) k' u% Z
题目:宏#define 命令练习(3) # D) L5 }3 c7 f5 s2 t
1. 程序分析: # S8 Y& ]; s, J; K
2. 程序源代码:
( @5 Y0 ~/ U. y/ U$ G# T#define LAG > + }- J' B3 s2 v n+ ~# @' C
#define SMA < 1 c; f, K9 I. L- a; s7 p- O
#define EQ ==
& m& u5 n) L \. |2 u#include "stdio.h" ! k, i4 S% S6 z9 H
void main()
! ]( [ i6 u6 W' W{ int i=10;
( {2 z) }$ v5 W1 {4 U2 L$ h) Gint j=20;
5 \2 a' @0 D& a- |' U" V9 Oif(i LAG j)
5 [) K4 N3 J8 t. S0 Sprintf("\40: %d larger than %d \n",i,j);
" [: U7 A& H9 A- V$ y1 Oelse if(i EQ j)
: y; u0 i8 f3 fprintf("\40: %d equal to %d \n",i,j); o' I; b9 r5 U1 H* m z: v$ u
else if(i SMA j) % V; X/ ]5 B0 x# U
printf("\40:%d smaller than %d \n",i,j);
6 z: p4 X5 u$ I8 s" w) b; A" ?5 selse
7 o1 y9 ~7 w" r8 T8 Pprintf("\40: No such value.\n");
0 v1 E8 l) h: T% H/ }: |}
% G4 o# [8 L- d: F5 l==============================================================
! v) p+ c0 y$ V7 s7 P. W2 Y J
3 Q2 a( W ~3 {, U( H4 ^6 U/ C |