EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
【程序38】
, X- O$ R9 {, k, E. s) R题目:求一个3*3矩阵对角线元素之和 ; l, x: E) c1 J
1.程序分析:利用双重for循环控制输入二维数组,再将a累加后输出。1 P/ {1 j' S( \7 d/ x" K
2.程序源代码:
. B9 o. P: Y8 B( F4 D4 e+ Jmain()
A8 G: x' m8 s{1 ]3 l f4 u- }$ K3 T
float a[3][3],sum=0;
5 H+ [% A" d: u3 Hint i,j;
: J. z% B4 e' }printf("please input rectangle element:\n");; J x/ w$ d( R3 }. J
for(i=0;i<3;i++)8 B+ l- F& {- y; B. V4 w7 s
for(j=0;j<3;j++)1 M8 }, Q" |0 z6 o" O7 `
scanf("%f",&a[j]);
' S9 T. l$ F) {' Jfor(i=0;i<3;i++)( F. _6 e, k' r# s" n; O. \+ p
sum=sum+a;
( V( J: q! ^* lprintf("duijiaoxian he is %6.2f",sum);7 z/ l& a+ ]3 X- n1 X4 w) `8 M" w
}
# x+ v; [, G$ o1 I" I8 w==============================================================
5 t* F1 b# u4 O9 S0 I+ h2 K& V) n/ Z1 v# }【程序39】9 c2 b' Q) F) R6 j' v5 v* u
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。( M1 ?2 F" D1 E% z) }
1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后( y: R( u& d9 T
此元素之后的数,依次后移一个位置。 % g* p+ r4 ]1 U) l3 H6 w
2.程序源代码:
* q3 D7 C; b( \main()9 E1 ], N" T" S7 L% }; ~7 l
{( m. C" [2 O1 ~8 g/ y0 h# Y6 l
int a[11]={1,4,6,9,13,16,19,28,40,100};4 q1 @2 r* p# I; k! s3 e* Z* X3 e
int temp1,temp2,number,end,i,j;; B1 F* Y6 \2 Z- f, q+ L$ [
printf("original array is:\n");! Y0 x. e' f& @; r9 R: k* y! ?7 v
for(i=0;i<10;i++)& |5 H7 G& \6 ~' v# m5 r0 P
printf("%5d",a);
. C! g8 i- L; X0 `: g9 s; i: L$ Fprintf("\n");7 s, f" P2 j9 N& B
printf("insert a new number:");
: N; b3 M3 U5 d# T7 mscanf("%d",&number);
- c; T' q/ g' T8 B+ O4 I2 @end=a[9];$ K8 o/ m5 U8 {$ J. n/ L
if(number>end)
: m" e: l, r+ z: C+ \; z( Q a[10]=number;
+ A3 I0 @9 W! ^$ q# T K' B4 S* Zelse/ O, L G# v7 f/ f; D
{for(i=0;i<10;i++)
: k2 E/ J8 L. \( d9 a { if(a>number)
6 {' c1 t* o; O {temp1=a;) g; d' X; j4 A D; F* o
a=number;" B8 O9 B3 r) q/ f; u
for(j=i+1;j<11;j++)
6 E; w/ ^4 b, L' k {temp2=a[j];5 K$ b+ [# @2 a
a[j]=temp1;
. Q" g. o. i n$ @- W8 L) J, U temp1=temp2;
; N% f7 |- v/ V! {- c$ k }
/ i' K% [5 d3 ^( G& r% N+ a) a break;
- I' t0 }2 G+ I; _ }- E2 Q. R: {+ P/ d& l
}
2 Y; f/ t# A$ y2 H}1 l3 P& U2 y9 u5 J
for(i=0;i<11;i++). d( t( f. w+ c$ `* m3 Q
printf("%6d",a);! T8 r7 s2 P! o4 Q3 u: f) n2 C' M
}9 o6 E5 i, n. v4 O+ f
==============================================================
4 T( u( P. K, ~7 x5 ?# @( d/ a( F【程序40】
( G" _8 O. F; i3 U0 e, G题目:将一个数组逆序输出。- F! ~' H: @- A1 ^3 X6 ]
1.程序分析:用第一个与最后一个交换。% A% w$ K9 q; `( V6 g' o9 w
2.程序源代码:
( {5 N$ r4 o, s2 S, \* h w#define N 5, g' d4 S0 I3 D2 Z" g
main()
( J( j1 @. ?, f: g3 N) {{ int a[N]={9,6,5,4,1},i,temp;
! K* A, F/ `( G" p( T5 P# W, g. s printf("\n original array:\n");
2 P8 |1 e4 s: u5 h4 c for(i=0;i printf("%4d",a);
$ a6 I6 P( k( r7 a5 `! j5 m for(i=0;i {temp=a;2 s, {4 C& i8 [6 L6 z; A
a=a[N-i-1];9 w' U( s' c$ e4 x. K
a[N-i-1]=temp;( g8 l# Z! Y0 i1 c7 L
}( W0 ~* @+ A) `
printf("\n sorted array:\n");5 |% H, c0 v) Q/ `1 R! r
for(i=0;i printf("%4d",a);$ h: Z( K/ L+ P8 w' R
} 【程序41信盈达 嵌入式企鹅一一起呜呜吧久零纪要 】 ' e5 ?& f3 H; J( U+ @3 Q7 H7 r" M
题目:学习static 定义静态变量的用法 & R5 n- F; {, S7 D
1. 程序分析: ) e$ @0 [7 _" w* f' N
2. 程序源代码:
4 J2 l& n1 y( n" Q8 K C) J#include "stdio.h" % f; k5 b- H- a, ]- W5 C! R
va RFunc()
0 z# X: r. @+ f8 b" ?{
; F$ m: d! n& E: f* B# Jint var=0;
( v: L9 X9 ~0 L$ M& g) [) X1 {static int static_var=0; ) g) V( `9 T- e: ^! v2 R0 |1 J+ r, g
printf("\40:var equal %d \n",var);
* j+ h% l B% Q bprintf("\40:static var equal %d \n",static_var); * Z+ i* h' e% W" g
printf("\n");
0 a) A- P' i" N6 y% \var++; ) I! }# \6 ~1 ^9 R3 H7 V7 p+ R. E3 l
static_var++; - `1 o, {' Z: P$ C; V6 f! R
}
. E1 e( k: C# c& [8 Uvoid main() A \8 ~' b( }, Y4 P+ \( Z# M
{int i;
' J* C3 Z) t/ N. kfor(i=0;i<3;i++) % N5 B6 ?, q& m& Z6 T1 o) q
varfunc();
: j' |0 f( s5 V2 ^} s! h; T% w- m( O' k0 b( K
============================================================== 5 B; `, J) E! p0 \
【程序42 】 6 R2 b3 z9 Q4 M6 f* O2 i
题目:学习使用auto 定义变量的用法
. \2 L$ F$ r) q1. 程序分析:
* j$ s- M& r2 T4 W2. 程序源代码: ! }6 y# |- y5 P) K4 _) z
#include "stdio.h" . p ~3 G. n C) u9 j
main()
6 Z# z y: {5 U" y+ W{int i,num;
" Q. a9 `: }. [8 V1 Gnum=2;
7 [) w a: r" _ w2 U, X; r. f8 jfor (i=0;i<3;i++) / f% C# ~! D4 W$ c- K* \5 R
{ printf("\40: The num equal %d \n",num); 1 |! e9 R$ ~ p/ R7 n2 J
num++;
7 A. I* [; T' ?1 y& u2 A+ ^; U1 s{
4 v& u6 v$ `, t& G6 f- a: z" `! hauto int num=1; 0 `& X( D7 o- R& I+ b
printf("\40: The internal block num equal %d \n",num); & b0 q$ W$ W4 Q& U' P
num++;
( C0 A% `) X( }; C1 M}
; G# U3 z$ j$ O9 s( G, T7 h8 Z, r} 5 }( P) C& ^ \3 V) r
}
) E& {5 m3 |4 y1 C3 a6 u==============================================================
! f3 W1 A/ g3 `, B【程序43 】
3 M* R# w0 r: [" R& h4 @# b, c题目:学习使用static 的另一用法。 - Z* F* C& f4 ?5 m
1. 程序分析:
2 h$ [8 s% i" m2. 程序源代码: , |, D1 b/ q/ j5 Z5 I5 U; s
#include "stdio.h" 2 b% {7 k3 m. v- k. V+ e/ c: `2 D
main() . q% s% F. h* q4 p: _# V
{
9 Y2 k; c+ I, hint i,num;
- P4 `9 W% v$ |1 Knum=2; * P9 L. C, F/ R5 E: i h6 J% X
for(i=0;i<3;i++)
' p8 r- j( }4 A( z! ^{
4 U6 `% d- p! T) hprintf("\40: The num equal %d \n",num); $ x; j% J: h. P9 e: g. ^: r
num++; 5 e/ g% ]3 P) M/ \7 j2 u& A% G( B
{
m6 Q0 e0 }$ B8 ~# i" ^8 Hstatic int num=1; 4 I* U! H- `6 ~5 k! N2 t
printf("\40:The internal block num equal %d\n",num);
4 K$ x: P j" \4 q7 D5 Q% D, M! P' mnum++; . c; ~8 C# d/ y7 d' X$ k
} 4 y5 z) a7 @% v l* j" ~
} - R* W+ d+ E/ j( B7 h
}
! k, T: e1 I9 S5 l$ P==============================================================
% \ n0 g* S5 {) J# [8 H& ]6 @【程序44 】
`' B* J4 b+ ?$ k题目:学习使用external 的用法。
" H4 z6 P/ [8 H. t* U* |8 X4 B0 R q1. 程序分析:
+ k" k* H& _5 o6 k2. 程序源代码: $ E! d7 `/ }0 [
#include "stdio.h"
1 y4 k! t& x0 T9 A$ u7 _% Fint a,b,c;
+ \1 o4 h4 B2 n7 Evoid add()
h- e) D7 c: |- K+ W" R: z( {1 R{ int a;
6 i7 `* Y3 f5 h8 N+ m. ia=3; ) k" ?; Y+ S/ u2 B# K
c=a+b; 2 y( p' V1 T" M# B: E
}
" l5 j% T9 Y' e0 F9 M- B0 Zvoid main()
7 r' ?& L/ [0 M6 u g' ?1 m{ a=b=4; , m; l. i6 W9 j8 X; g
add(); 5 [# E7 G3 r: {5 J6 v
printf("The value of c is equal to %d\n",c);
7 C4 z1 S+ H8 C: K% W% y}
$ k! |) A# k+ t' a==============================================================
7 I \7 C& }# z9 S【程序45 】
! _, |# Z6 \! z+ Y$ G题目:学习使用register 定义变量的方法。 ) {& a9 |, A! t R L6 z
1. 程序分析:
. A2 ~% ~: ^6 B% u. m2. 程序源代码:
3 {- y( W/ H4 G% p3 Hvoid main() * B5 j( b7 q2 T T
{
) U6 u/ {+ g+ j, N Q$ k' v0 Pregister int i;
+ c2 B9 J2 m: p& d) }* Xint tmp=0;
& `, k$ c& P. R. ufor(i=1;i<=100;i++) * v/ c5 Q! h8 F# |2 |
tmp+=i;
+ e0 l6 r2 H, I0 ~- o( Q0 A8 vprintf("The sum is %d\n",tmp);
, j) n( n" J/ O( p+ k3 A+ b8 J! a} / B8 T8 ^6 w4 E* c0 R; x
============================================================== , t2 P2 L: \; m( @6 I+ E
【程序46 】 ( b9 ?% k: b$ ~; f; x1 h
题目:宏#define 命令练习(1)
8 }! A' @: z4 K* {+ U: x" @. M1. 程序分析: + y( T5 P! N7 b
2. 程序源代码: 3 \+ ]1 Y, v! Q4 w! N/ U
#include "stdio.h"
: w. A: l) [! v( d4 d$ w#define TRUE 1 " m- D+ ?3 @% Z5 O1 x
#define FALSE 0
& h7 t5 l3 @. J#define SQ(x) (x)*(x) 9 H$ H% Z1 V0 R. x
void main()
5 J: z5 W9 ~& r- ~7 V0 O8 K$ ?{ : k( D7 M/ K- G$ `$ z5 A
int num;
3 F% y) @7 V, vint again=1;
6 C7 }2 r' r3 ^, C/ A; Bprintf("\40: Program will stop if input value less than 50.\n"); 4 d3 \) G% y! p- E3 y: [( D6 q
while(again)
3 V. j6 L n* _: V8 i5 \% @: r' U{
' v7 K$ j1 V9 a6 x0 U( wprintf("\40  lease input number==>"); $ \7 D: j. ~9 h8 H) I/ G: L
scanf("%d",&num);
/ A8 N3 b1 D1 K/ iprintf("\40:The square for this number is %d \n",SQ(num));
) a9 I3 D9 ~" _if(num>=50)
7 \/ ?- H8 s4 a$ U5 n+ eagain=TRUE;
# T; w7 X1 G3 v$ Belse . \: M! q- n0 v% ~& u
again=FALSE;
7 J) C, J$ _2 w& s2 F3 |# C9 Q}
6 o/ v& B( s# R1 \, t: R6 M7 U4 K} ; H- \# v5 Z# u& x5 ]
==============================================================
. O8 p( F, ]$ z6 Z C【程序47 】 2 [# q0 [# [8 ]5 E7 b
题目:宏#define 命令练习(2)
3 T q( e& B' J5 s. ]1. 程序分析:
; I, n! h/ w$ k2. 程序源代码: * L3 |% q) |8 T( {2 c% e
#include "stdio.h"
4 x' G$ l, K% O. u6 U& t/ s' c#define exchange(a,b) { \ /* 宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上"\"*/
8 _1 m% H. K4 s- g$ z" Dint t;\
, l# C% a$ f8 _9 A8 @t=a;\ . `1 G9 n" H: Z7 X$ p' N) T5 k
a=b;\ 0 u5 l( `" Z( D) T
b=t;\
5 P- V Y! |. ^2 ^4 q1 C$ F}
) N( _* `. L) l7 P! Svoid main(void)
& B+ f; E' R' `& z" ?+ R{
, p) w- e; j* A7 W3 p9 {0 p! c/ F. ~int x=10;
. R) z; _8 I' P/ b: ~/ q# @1 x$ ?int y=20;
- }% U% I' p Kprintf("x=%d; y=%d\n",x,y);
5 M% e5 z' p5 }" k5 x4 f- |exchange(x,y);
$ X" Z8 n9 K5 H: [9 K! zprintf("x=%d; y=%d\n",x,y);
0 F% ]6 J; \2 J}
* Y: c- ]+ D+ V4 t4 V, w==============================================================
( g4 Y$ _9 Z! Y. A, E7 R【程序48 】 # U& v& S* s' Q, B
题目:宏#define 命令练习(3)
/ L P: z( V" m3 O2 I0 t2 e7 h; Q9 b1. 程序分析: ) Z) c/ z$ f3 N: r' u
2. 程序源代码: $ {, n- {5 \! [0 I
#define LAG > 4 c( G, t) }# O7 P+ l% b
#define SMA < / x0 n. B4 R$ {* a
#define EQ == 8 E4 ]+ R" T G
#include "stdio.h" 5 q1 d* }( A3 {! o/ ]$ R4 S
void main()
; \6 j4 V+ `$ v' C{ int i=10; : Q& w# ?1 N! e: b% }
int j=20; 8 n! o- g* k1 Y) V) @
if(i LAG j) & T" I Y/ h+ x+ J8 L2 o
printf("\40: %d larger than %d \n",i,j);
& F# s5 {8 n |; |else if(i EQ j)
0 v7 ^: S3 E8 \7 Yprintf("\40: %d equal to %d \n",i,j); % g( i9 w$ ?6 {7 y; _( y- u+ }
else if(i SMA j)
9 h( M" V1 _. Tprintf("\40:%d smaller than %d \n",i,j); ; u* T! X) [3 q: n V; T r4 X
else
$ B5 X! p/ s$ ` kprintf("\40: No such value.\n"); 7 l, A6 _% V- R6 Q) g! }
}
1 r) f0 W9 r) f' I. _" P==============================================================
9 q) ]0 r* E5 i8 i, W( k1 ^ / V' a$ b" u; q# A0 x
|