機(jī)械社區(qū)
標(biāo)題: C語(yǔ)言經(jīng)典算法38-48 [打印本頁(yè)]
作者: tainqing 時(shí)間: 2017-10-8 15:23
標(biāo)題: C語(yǔ)言經(jīng)典算法38-48
【程序38】
) |) r7 x5 g& X- k9 Z/ i* s題目:求一個(gè)3*3矩陣對(duì)角線元素之和 7 k. u; O( x+ |6 E
1.程序分析:利用雙重for循環(huán)控制輸入二維數(shù)組,,再將a累加后輸出,。, ?3 k! l0 V9 x
2.程序源代碼:+ k" F7 p4 E! C/ V; Y6 }
main()3 V. ?" G$ p$ P: m1 s
{
5 h3 V" G% F% a& _ Ofloat a[3][3],sum=0;
, \' o: L$ z* L; \int i,j;
4 X7 c1 U7 y/ z2 n; ?8 Zprintf("please input rectangle element:\n");( _/ y# J& m/ I) U
for(i=0;i<3;i++)
4 [) Z- k! O% @; ]( L& N for(j=0;j<3;j++)
1 P8 k- c5 t2 B0 A, b! i scanf("%f",&a[j]);
3 W& O" U3 r ?/ L i/ rfor(i=0;i<3;i++)
0 r$ W, |9 j" N5 s J2 y sum=sum+a;" P; C; e5 B8 G, z' Z2 ^
printf("duijiaoxian he is %6.2f",sum);2 n1 L5 |, T5 y# l! q
}3 S D$ `; ]! y
==============================================================) `9 g& @& i; q) o- J
【程序39】
5 ^' R/ e" F) G$ \8 D3 J2 D題目:有一個(gè)已經(jīng)排好序的數(shù)組。現(xiàn)輸入一個(gè)數(shù),,要求按原來的規(guī)律將它插入數(shù)組中,。
* H& L b: N) W- g4 p1. 程序分析:首先判斷此數(shù)是否大于最后一個(gè)數(shù),,然后再考慮插入中間的數(shù)的情況,插入后
+ s( W1 o( A, Q% i3 { 此元素之后的數(shù),,依次后移一個(gè)位置,。 5 F6 l7 j' G2 U
2.程序源代碼:
) b, E5 L1 }7 s9 fmain(); ]2 [; M, n# N4 u6 A0 T
{
. a8 i" g w# I' g0 i) D. wint a[11]={1,4,6,9,13,16,19,28,40,100};
8 c) ^; \ A: i0 T3 s1 Uint temp1,temp2,number,end,i,j; z/ u3 U6 V2 K' z' x1 r
printf("original array is:\n");6 Z+ V" p4 R ~' K& K, I l. S
for(i=0;i<10;i++)
7 e3 ?/ }$ Y& o+ m4 d2 G printf("%5d",a);! O* n; D+ h, J B7 b5 `
printf("\n");; p; i7 a/ o9 O
printf("insert a new number:");
% D7 l. ^" E/ k6 J. V8 |; e" Fscanf("%d",&number);
m3 ^% N# _- Y5 S' B7 d* fend=a[9];1 H; Z2 A+ \4 \5 v; q3 Q
if(number>end)! s- _) A& r! R8 e3 A
a[10]=number;* g3 B9 v, ~, @' y1 L" f, `) ~" \ k# R
else! y/ F0 [) N* v0 v
{for(i=0;i<10;i++)4 X+ r3 F: E2 d! C, ^8 Z7 f
{ if(a>number)
# X7 G5 C+ Q8 [+ L2 a+ F {temp1=a;
: A5 V+ {) j; i6 {" W1 x1 c% ? a=number;! a. Q+ U8 E' L
for(j=i+1;j<11;j++). K% u8 h3 |# q5 |, R( x3 D
{temp2=a[j];2 U8 H, u, x* L+ o$ D M* S
a[j]=temp1;
( X4 s- H2 J3 \- j temp1=temp2;
+ O5 C5 _0 N7 S }
# ?% k, U6 F/ b/ E$ K" U break;
5 R5 M% Q5 C: H8 ^ }2 b N" o$ I: s: H3 l6 D9 X0 I$ O
}( E k. A3 l `$ Z& Y
}$ T5 _. B c! E! K* j# [
for(i=0;i<11;i++)3 X6 H- J# T" U
printf("%6d",a);1 t( z( I _* y, L' y
}
5 A4 K/ U+ e& e& O==============================================================, H' z8 F" @+ B9 _/ E3 h
【程序40】7 h$ j' V' D8 O% W4 Z
題目:將一個(gè)數(shù)組逆序輸出。
& X# b' r3 f. z F) U/ \1.程序分析:用第一個(gè)與最后一個(gè)交換,。& A3 j7 }2 Q- e+ h( ^& T/ x6 g( p
2.程序源代碼:
1 w6 U' E+ B" @! ]* s% {#define N 5
* x3 q- d; F9 K2 \9 F% Gmain()7 T1 W v7 ~8 N
{ int a[N]={9,6,5,4,1},i,temp;
% f! Q+ a5 g7 [3 ]/ y+ N printf("\n original array:\n"); F6 o4 D% d/ B( G/ s
for(i=0;i printf("%4d",a);' A( j( ?, J+ Q' }- E7 B2 Z/ y
for(i=0;i {temp=a;
, N6 o- C0 O" d8 `0 r a=a[N-i-1];
, p7 _) K( S$ A8 H a[N-i-1]=temp;
7 H5 w6 R" x) E+ }9 A9 w }
( z! C0 @" Y9 E- ^& Z% z0 u" Lprintf("\n sorted array:\n");
# [: N! f- p( Ifor(i=0;i printf("%4d",a);
0 z% n! G9 R/ I1 \/ S% o# _}
【程序41信盈達(dá)嵌入式企鵝一一起嗚嗚吧久零紀(jì)要
】
9 R. h4 r: o* e8 I# P題目:學(xué)習(xí)static
定義靜態(tài)變量的用法 7 B5 S- e/ t& _3 O( Q
1.
程序分析:
! F' l6 M4 Q P4 u5 W) H- ?2.
程序源代碼: 8 p8 S) R! }# k; n0 {
#include "stdio.h"
9 {3 p2 s* {2 r6 k& I- k
varfunc()
# h! W1 P6 }9 h
{
% ^ m2 i7 O7 c8 e8 {. rint var=0;
) L4 `7 m+ O( g- h" C
static int static_var=0;
5 V. W& b/ r/ r. i1 n' _0 H) Q8 o2 rprintf("\40:var equal %d \n",var);
$ u5 J: I/ r8 ?
printf("\40:static var equal %d \n",static_var);
4 z# H1 m' Z. l/ w7 }2 |( x+ t* ~
printf("\n");
" P1 C7 m# a* t5 p1 e8 S6 L4 \
var++;
. {/ ~, q" C$ Y* Q5 `
static_var++;
4 K/ J6 ?: U- n5 J* j6 x) t}
) x3 V& }2 @' P% qvoid main()
! h7 m; Y0 I' n$ \" u+ h
{int i;
( t9 E/ K, X9 k7 V( f& nfor(i=0;i<3;i++)
8 m: R, a7 @2 m7 D" M
varfunc();
, V: I* t: C/ e U+ a' \' P4 t
}
1 Z& f0 i7 U4 Q+ i3 y==============================================================
4 G: l$ Q7 N& p# T* v, l
【程序42
】
7 `2 Z( {, D! V- r0 i L, }題目:學(xué)習(xí)使用auto
定義變量的用法 7 y* ` R" [+ K
1.
程序分析:
0 W3 k6 O4 |: s u( |2.
程序源代碼:
/ |8 l$ _$ |' P#include "stdio.h"
/ B+ p" ~+ F* g+ `( R
main()
: @' H& ^4 D' B, J
{int i,num;
. o9 G7 f7 q2 _; `0 F1 K7 Inum=2;
' J. q1 O5 l3 l% T* U3 n
for (i=0;i<3;i++)
6 H! o' l5 p2 Z& j) f{ printf("\40: The num equal %d \n",num);
. g2 X& b! Y& N2 X! knum++;
9 \( w) I) ~3 w1 P$ c" k
{
: W' e* ~2 ]5 {7 K3 o fauto int num=1;
( R6 ?3 ?+ s8 B: y# I
printf("\40: The internal block num equal %d \n",num);
/ z/ M* I) u% |3 h7 {
num++;
. m! Q# W" @3 h) d9 J}
: `/ p; M8 e/ {% {9 i8 b
}
* R# Q) d) R/ Q6 ^2 B3 A2 D+ O
}
! z* M9 Q9 {. f) b5 M' {. [
==============================================================
: l; c4 F* R7 H8 X: M) u【程序43
】 : I4 ~- U6 u7 U0 }6 _! U3 F0 ~
題目:學(xué)習(xí)使用static
的另一用法,。 ( ?( O- Y1 s; f
1.
程序分析: ) F& w: [+ v( S1 g6 }) \
2.
程序源代碼: 7 J! _; Q1 H9 t- _2 ]
#include "stdio.h"
3 k9 e' e- H# k. U- `main()
5 X6 S( }7 K9 Z: i8 P2 Y' y{
, P6 l; m) K F; f" u) q" S9 _int i,num;
- \6 P% L4 n) e: i; c- ]num=2;
% |$ `# J; _% R$ `
for(i=0;i<3;i++)
' w1 g: @, O! v; B* K; k
{
& Z& D5 i3 ]4 S- x
printf("\40: The num equal %d \n",num);
* a# `" f7 |; Q& n% i
num++;
5 @0 Z2 ^4 C7 p' W+ \3 G3 z
{
9 ], d0 |: `6 K, m
static int num=1;
3 O3 o3 F/ t' ?/ jprintf("\40:The internal block num equal %d\n",num);
$ R/ O) X" P0 b7 P+ a; Xnum++;
\5 H; y7 X8 B1 ~# M, D
}
9 n) w8 A* X2 p}
8 I% z6 K: Q( |. ?2 K0 I" Q/ L* [& n
}
* ?+ N' S0 l, C==============================================================
% m6 d' V- S$ g% l; v* s: M* A8 J【程序44
】 9 a8 A/ M7 T$ C- N3 I1 a3 z6 l# K
題目:學(xué)習(xí)使用external
的用法。 5 T3 o* Z6 O5 m
1.
程序分析: - I# a/ l3 Q+ a8 y1 R) V/ r* I
2.
程序源代碼:
) \" n" _' \( k8 G. y#include "stdio.h"
7 ~, w6 c/ H/ _9 Z2 b H, S5 E
int a,b,c;
- g0 N4 x. k' q$ z qvoid add()
7 J# N5 m/ C4 @& v+ X{ int a;
c& } g+ D& K. v5 _
a=3;
0 }: x# b* c& G$ } V6 K/ S" t
c=a+b;
2 \4 j% w) K2 }+ m}
g- H1 c! K$ z) [' Y5 Avoid main()
; K }+ r& P! e8 l1 d{ a=b=4;
% E$ j! B/ [& |: [) hadd();
0 x' G3 S3 [1 y+ K' O* Hprintf("The value of c is equal to %d\n",c);
0 K: T6 ?" J: Y9 ?9 G
}
8 |. U7 t- L0 y6 b' a& {
==============================================================
& x' q) A- [8 K$ j) X# N4 x% U
【程序45
】 & z- A% P+ p, m; P2 O
題目:學(xué)習(xí)使用register
定義變量的方法,。
3 R* ^/ e' s" N5 R* a+ Q: C' i1.
程序分析:
( {3 |. y, h7 f' v+ v2.
程序源代碼:
5 U9 _, V( |1 c# b( dvoid main()
$ I% P' X& y6 E9 D. }6 `
{
4 m; x1 g5 ]* Hregister int i;
$ L: i$ K/ C" C) v" X1 Yint tmp=0;
% F5 S# K7 ~: j5 ^1 U- y! G7 n
for(i=1;i<=100;i++)
3 O- R2 U9 i, ctmp+=i;
; \2 b7 m! l9 h* mprintf("The sum is %d\n",tmp);
. P7 d( F+ j% F; r3 ^7 Q4 W; X
}
% \/ W! P, r& F1 {% V! Z- L' c==============================================================
6 w5 g+ x7 P9 [5 F2 Y4 N+ h. z【程序46
】
0 n3 ~7 E; h5 l2 r) A( l$ i題目:宏#define
命令練習(xí)(1)
0 e& I* e5 w8 O1.
程序分析:
8 k ?1 D, w1 O2.
程序源代碼:
0 R$ Z8 h% }* W# {3 j$ g: p#include "stdio.h"
2 l }, s4 f1 @: C7 k* Y& W#define TRUE 1
3 |: o- S4 n2 G$ `# M3 Z
#define FALSE 0
* F! d4 C) K! T( |; N#define SQ(x) (x)*(x)
8 n3 h) Y/ O' R1 K6 l; Lvoid main()
4 t6 z+ I0 s0 T* ]{
8 V0 l. ` P5 F9 v' C0 ~( lint num;
- W9 R* V$ i$ e# cint again=1;
1 U* \; B7 Q) Dprintf("\40: Program will stop if input value less than 50.\n");
- S5 C H t. T& }, x
while(again)
$ u% S; @ n; L5 B2 o+ @( C. U+ F
{
7 O! Z0 m" m6 r* Z* p7 Sprintf("\40
lease input number==>");
: K7 a. z& }2 H, W3 T. z: |$ r
scanf("%d",&num);
5 D7 z) C1 H8 j- s# E8 z/ Qprintf("\40:The square for this number is %d \n",SQ(num));
# r* T7 Y+ D* R: f! }3 ~
if(num>=50)
# t/ p+ Z9 A) ?3 M! `0 l9 t4 C1 Dagain=TRUE;
) V& `' k% I9 b- S0 I! T
else
. l5 D) c! M# e _* ?+ Y, E" g
again=FALSE;
$ D" P5 S' [: r
}
/ Q K q) \( Q# {) k5 t2 K2 r) V}
& _9 }% k2 r2 E! T
==============================================================
4 L$ N$ i1 w( n2 k% e* n【程序47
】
) T6 F" I' R8 Y1 O題目:宏#define
命令練習(xí)(2)
' k! W# P5 w" q( p$ f1.
程序分析:
# V7 c3 W/ N( H1 L) t2.
程序源代碼: 1 a. V* c/ j+ X
#include "stdio.h"
% m% W5 g. y) h* C! X#define exchange(a,b) { \ /*
宏定義中允許包含兩道衣裳命令的情形,,此時(shí)必須在最右邊加上"\"*/
6 j4 Z$ b/ A0 @) _+ p$ eint t;\
& |# g. b4 B+ u8 c7 ~" ^8 tt=a;\
1 I( r3 S% ?: i& r! m# Y. B
a=b;\
3 n7 U. l; c: g2 I7 G7 | v
b=t;\
6 T) Q8 J, b! R- s. n
}
9 c1 h9 @4 J+ N3 w
void main(void)
: F! t" G2 j" T2 X& B& o+ w
{
* h- O( H( c8 Y: \int x=10;
5 l8 @4 ^" O. O& M) S3 P1 Dint y=20;
) ~7 K! {3 G m3 y- a/ L7 l
printf("x=%d; y=%d\n",x,y);
; K( p0 a4 f6 c$ a
exchange(x,y);
7 A- n! } h B9 P3 W
printf("x=%d; y=%d\n",x,y);
3 D% Q/ ^, d; M2 b; K9 J* j- G
}
0 U, w! |) n% H7 y' u a$ P
==============================================================
9 A6 y1 z4 P1 M5 h6 c$ h
【程序48
】 % Z u- L2 D8 s3 E( c5 c
題目:宏#define
命令練習(xí)(3) ) J: {, [- s |7 r/ ?
1.
程序分析: : j* v. ]# L! Q' C6 k6 X
2.
程序源代碼: 1 R* J' b$ d4 Y
#define LAG >
- a- t. X- w3 H0 X, [% `$ J, J9 ?1 C4 c#define SMA <
5 y% w4 ^8 Y) n/ ?5 Y( F#define EQ ==
: L" V) J# u: {5 W( a' y( j6 y#include "stdio.h"
# N' ~6 T9 M6 }4 T4 hvoid main()
- s( x, |* } V5 x6 \* k6 u% M
{ int i=10;
9 U, Z2 ~& l+ J3 O; E. h# y- X
int j=20;
: v7 E* m3 ^* m* R& l
if(i LAG j)
% w6 S9 Q8 R; U9 e0 @printf("\40: %d larger than %d \n",i,j);
' g. `9 F: a$ K2 G9 K5 u$ K
else if(i EQ j)
% v( U \3 z. O$ @" I. v, Nprintf("\40: %d equal to %d \n",i,j);
! d9 d+ d1 g C" W/ T+ r, ]else if(i SMA j)
) m2 X: Q4 S. _/ X/ Yprintf("\40:%d smaller than %d \n",i,j);
4 D3 |6 h @, E( ?9 Helse
' p& L7 l* r7 v, l- mprintf("\40: No such value.\n");
8 o# X0 u t! f5 F8 w$ a* m
}
0 y: P" |. Z7 u4 C
==============================================================
* a0 s Y4 e& D1 t4 l
, t w/ N( u/ l. O" W$ v* f
作者: 白tyzb 時(shí)間: 2017-10-8 21:32
曾經(jīng)自學(xué)C,最后沒有最后了
作者: moldzsdj 時(shí)間: 2017-10-10 08:41
自學(xué),。,。。,。收藏下來
歡迎光臨 機(jī)械社區(qū) (http://97307.cn/) |
Powered by Discuz! X3.4 |