機(jī)械社區(qū)

 找回密碼
 注冊(cè)會(huì)員

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2374|回復(fù): 2
打印 上一主題 下一主題

C語(yǔ)言經(jīng)典算法38-48

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2017-10-8 15:23:07 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
【程序38( s* V* v* Z, E7 e% b6 ~
題目:求一個(gè)3*3矩陣對(duì)角線元素之和
: w% m! k2 k6 D7 G( m2 b1.程序分析:利用雙重for循環(huán)控制輸入二維數(shù)組,再將a累加后輸出。! \% |# O4 F  Q8 s/ P; c
2.程序源代碼:
- m* s+ d7 E1 Zmain(): m% s5 [+ U' Q7 \
{
8 n+ H  ]! R5 y3 E' Cfloat a[3][3],sum=0;% d$ ?1 L: R" t9 a9 q
int i,j;2 E9 F. v; R( c' E
printf("please input rectangle element:\n");/ ^) V* d2 y3 }% i0 m' V  q
for(i=0;i<3;i++)
' n5 Z& m  N: {3 c for(j=0;j<3;j++)
7 l  s, e9 N. `2 q( Z. W' U! Y scanf("%f",&a[j]);; d2 A- i& [: w$ g4 ^
for(i=0;i<3;i++)! i$ y3 p$ v4 v2 }# l
 sum=sum+a;% O* r' N* e4 d, n7 T
printf("duijiaoxian he is %6.2f",sum);6 s( e+ m7 c8 T- n0 Z
}
( K/ A! M. x; c# Q2 \" w==============================================================: H# a' n, M- h  N0 v; w
【程序396 ~  _; z5 ]' S* i
題目:有一個(gè)已經(jīng)排好序的數(shù)組,F(xiàn)輸入一個(gè)數(shù),要求按原來(lái)的規(guī)律將它插入數(shù)組中。2 b7 t/ f& G; V) M- v- }! ~& g
1. 程序分析:首先判斷此數(shù)是否大于最后一個(gè)數(shù),然后再考慮插入中間的數(shù)的情況,插入后
* v" |! S" a. Y: U+ J     此元素之后的數(shù),依次后移一個(gè)位置。 0 ^4 }. o" |+ ~: [, Q9 I  D
2.程序源代碼:" j# X$ c, b- e
main(); z; u1 J& T/ @  l) i6 o4 N
{
) m) t+ c7 u; I' @6 ~+ _7 Zint a[11]={1,4,6,9,13,16,19,28,40,100};
4 o8 P* Z1 K: c7 Gint temp1,temp2,number,end,i,j;
2 w" H2 p( q5 l9 w; J# nprintf("original array is:\n");
- F& t: a! E2 B# c. x# |for(i=0;i<10;i++)7 L2 h) L1 `; H2 N8 ]4 F2 Q& n0 N4 r
 printf("%5d",a);
+ ^# t0 s5 K9 x! u/ N/ V) yprintf("\n");: \- T4 E. I5 p7 c: k
printf("insert a new number:");; x) I; ~0 T8 C
scanf("%d",&number);& h! s" g8 m1 f* Z
end=a[9];$ w% V# b8 w) V( s# z7 {3 A
if(number>end)/ e9 f3 t3 f: p. o5 V2 T
 a[10]=number;
5 e9 r& X3 k* J$ @# y( C1 T5 Celse5 o* B, B9 L: D$ X3 ~+ h0 p
 {for(i=0;i<10;i++), Q' Q8 ^, |2 g. R7 h
  { if(a>number)
+ N, _% N- M0 c. a   {temp1=a;
" y# u/ E' Q2 q0 q    a=number;6 n0 P' [4 W6 g- ~9 |5 E; P
   for(j=i+1;j<11;j++). C; ?9 S  I2 H1 w* N: }; }
   {temp2=a[j];1 u, f! ~; b  g2 l. v7 N
    a[j]=temp1;7 V1 {7 t0 [3 P# P8 w3 m
    temp1=temp2;: d7 h. _+ b1 Y. c$ f  R0 D6 N
   }
* J/ [: q. f. x) ~" d   break;
- |+ Q7 ^6 w; b   }
2 E7 d1 }3 Z: W  }
( H7 V: P, c" ~" j5 g, q}2 K: S+ i" m) ?% o- T; O+ B
for(i=0;i<11;i++)
: z1 o) ^+ Q& d0 r2 B- V printf("%6d",a);
5 {) H3 e1 u& q+ x( I4 [6 t, K}
2 t1 x' ?' f7 t# H==============================================================+ C- P' c& U' S0 h
【程序40$ `9 s9 T4 m) J, S0 P/ N" D5 W
題目:將一個(gè)數(shù)組逆序輸出。
  r( E" _2 Y! d- [1.程序分析:用第一個(gè)與最后一個(gè)交換。
5 r$ o3 n* o/ i* h2.程序源代碼:
$ d- i0 [0 U% O, b! L* }#define N 5
* c- F) w3 u$ a, bmain()
, `' v% X* C; C{ int a[N]={9,6,5,4,1},i,temp;* y9 F5 U6 c( v- Z. Z! ^5 ?
 printf("\n original array:\n");
( U3 p# q# z) B% M4 [, T for(i=0;i printf("%4d",a);8 g+ [: Z* u9 }/ a* V
 for(i=0;i {temp=a;
, W! ~9 O/ M" O$ T1 t1 r; H# F  a=a[N-i-1];
2 H! m0 j  I! |  a[N-i-1]=temp;
1 C- b& U$ |0 [ }
1 l  N0 z" X% E) a# pprintf("\n sorted array:\n");0 a$ b5 ]% a! p7 a& m6 h: d& O
for(i=0;i printf("%4d",a);; p2 i! |+ s4 g9 ]5 p5 H, r
}
【程序41信盈達(dá)嵌入式企鵝一一起嗚嗚吧久零紀(jì)要
: s% Z- L/ U: V- y$ `- D' l題目:學(xué)習(xí)static定義靜態(tài)變量的用法
: t- Q8 o$ F7 I' Y1.程序分析: 7 `, k0 i% S' M6 S
2.程序源代碼:
4 K, ^5 L+ ]! ?  F2 ?5 X) X#include "stdio.h"
  `6 e' W8 F: v3 M4 evarfunc()
! G( g2 w2 K- b. p6 H- ^{ 5 `6 ~) @% n. J4 A
int var=0;
3 y& _+ f  N- z! ^' M, nstatic int static_var=0;
& P5 H- n: A% b' l9 ^5 rprintf("\40:var equal %d \n",var);
7 A4 \- x9 V- U; b& Cprintf("\40:static var equal %d \n",static_var);
: P( }6 f  L& U7 M7 Yprintf("\n"); 9 n- r% m2 D. t. i
var++;
) a5 X" t0 }) `5 i. cstatic_var++;
5 e  [/ Q( {; z0 f} 1 b4 g  Q; K; A$ l1 s# c, w$ O
void main()
( J, Q) w, h. D{int i; 1 x( f! d( I" y( q
for(i=0;i<3;i++)
) ?1 \/ v! _' I# K& i. Y* K: evarfunc();
% ?9 m' B3 Z9 f} 4 R% ?) M9 w9 @! e
==============================================================
. \) D2 T4 e6 n% c7 }+ S【程序420 f! j% Q) d1 C; ~: t6 c
題目:學(xué)習(xí)使用auto定義變量的用法
" X% M) Z3 J; [" Y6 J! b7 ^1.程序分析:
6 r2 ?7 d/ g# Y" w, y2.程序源代碼:
9 X2 g: p6 G+ A8 ]6 m2 e#include "stdio.h"
9 f5 H) B( X% z& I2 k/ pmain() 7 N  @, @. Y5 X8 }3 X0 H0 \
{int i,num; ( n! Y5 N  J  l; W
num=2; : {) [5 v! |; j
for (i=0;i<3;i++)
* J) a5 K8 o2 R# {6 D0 [+ P$ a{ printf("\40: The num equal %d \n",num);
, z7 A  s! ~. M; }0 _$ Qnum++; 2 y) U( _, Q4 z2 e
{
+ \  {4 o) _! N2 kauto int num=1; 0 e8 F0 Q' @3 k+ Y
printf("\40: The internal block num equal %d \n",num); 8 q0 M, b5 m, D; @# {% r: _$ t
num++; : U4 {, m* q3 ~& W
}
& \5 h! x2 |( D1 O( l5 W} : C! I% J$ @- X
} ( g5 ^. Y- l# w- b% }% h
==============================================================
! e0 }  S- O4 D& l【程序43
5 P* f& `0 L, i" Q9 Q+ z# X* d. U5 g題目:學(xué)習(xí)使用static的另一用法。 0 o" n7 D1 R" G# I( |/ O
1.程序分析: 1 }/ ]' b1 Y7 I* u
2.程序源代碼:
' ^0 d$ }% X0 l( w) g  L- Z- C# |! L#include "stdio.h"
0 ]: c0 F) K& Emain() % f, W+ b4 a' P) H/ t
{ * x. x& P0 v  Q8 V* A
int i,num; 5 Y% j5 D. L; C) f: ?0 C
num=2; 1 Z; E" r: p! ?3 F$ w# P
for(i=0;i<3;i++)
0 V. I+ I9 Q( k$ ]' w( l% n{
# r* ^; p/ P6 J' [& Cprintf("\40: The num equal %d \n",num);
9 v  Q2 H3 t8 n- Qnum++;
2 z7 K& D  F5 k$ ?+ ^' \9 S{
. D" Y; |4 {! Vstatic int num=1; 7 @1 Q$ i% l4 z0 B' y6 w- s& m
printf("\40:The internal block num equal %d\n",num); ) ]$ T& S# r, P9 J8 o( ~" E
num++;
1 o7 h$ l# F+ g3 z% u" a}
) Y) H" ]( o$ P3 V$ z1 p}
; X5 F- w4 [( [  Q} 7 V: j# E2 j3 n
============================================================== ! Q0 ^5 i8 Q& l* N" E" C
【程序44
+ D+ ~  i) c) Q+ }0 ]題目:學(xué)習(xí)使用external的用法。 - X: Y/ \1 _3 A% e4 Z  N6 [
1.程序分析:
; h$ Q/ k7 I. c% F1 D6 L* U8 }/ ^5 I2.程序源代碼: $ F# l( w6 |( g$ o8 B. F! n. `
#include "stdio.h"
! `/ a! W0 T. _0 E% wint a,b,c; 9 T. U6 X' v! g& L9 h- y
void add()
6 ^; e4 j3 |! `! ], o* i4 v9 {$ f{ int a;
% f$ u8 s" d; J# s. u/ Za=3; " y. Q+ p$ Z4 d) j: I: ]8 G: V
c=a+b; 3 a' L/ _: f' k% D
} & Q# a* i8 ~# {" ^  e, S$ F: n& Y
void main() ! O0 J( D! f5 ^
{ a=b=4; : G) `$ w& y" Z- o# {6 o/ k, ~
add();
: j( K9 K0 F' t5 M/ fprintf("The value of c is equal to %d\n",c); 2 Y3 P2 ]# h3 l, W8 o8 {* `
}
9 Z  g9 h7 i1 N- G0 i============================================================== : @/ R* S1 C# K) e" c
【程序45
3 ~, c# d4 b" l& s; X% e( L題目:學(xué)習(xí)使用register定義變量的方法。 ) ^! O- N5 F9 ~& }
1.程序分析: 1 u" N- a$ _$ B# l8 F7 D: S
2.程序源代碼:
+ ^, f( b4 H8 c) O) ?void main()
; i2 ]: V. u6 i3 ]{
7 P# u( W* H4 {% ^" e: @6 v9 qregister int i;
8 p4 h: t! o# q' v2 P8 ^int tmp=0; & Q5 ?: j6 T; E* _% l' A* N
for(i=1;i<=100;i++) 7 W, T/ W! R# m
tmp+=i;
% \' B4 \8 O+ w) o+ Tprintf("The sum is %d\n",tmp); + x6 D  x: q+ H* X1 ]. ?# R
}
' |) r. X# {5 L' B==============================================================
+ L2 r, M& U% Z( L' D7 \' f8 ]! }# u2 k3 R【程序46  ?3 \  \8 ^4 O. W" P0 [
題目:宏#define命令練習(xí)(1) / @7 d% L. L) G! ]8 D
1.程序分析: ) h, ^5 }8 }  O* ?" a( U
2.程序源代碼: & c& M& `  i0 |3 q2 j
#include "stdio.h"
! r3 {8 {8 v/ T2 A, b& ?#define TRUE 1 ' ]* F# |5 a. s6 u# P" c8 H, `! q2 E
#define FALSE 0 . B2 S3 b0 E" A% ~$ v
#define SQ(x) (x)*(x) + @1 o. l* J5 X) ?# _
void main() 3 ~% M6 W0 B2 B' s' t. h+ f
{ 7 d6 S% E9 r$ F$ f
int num;
4 m* e2 q7 v) x+ Uint again=1;
- x$ Y1 f1 J2 Y- ~6 \printf("\40: Program will stop if input value less than 50.\n"); $ b3 I7 |" i( T' o, t
while(again) 0 s" |8 M9 R: W
{
& t' |, I! h* S. y. _- Iprintf("\40lease input number==>");
. a2 G0 [3 ]5 s# o+ G$ Jscanf("%d",&num);
- D& G& |8 W, Gprintf("\40:The square for this number is %d \n",SQ(num));
6 Z) a7 Z) c5 }4 a- R1 aif(num>=50)
5 ^, ~: K7 n+ G( W# J8 Y  g5 f# xagain=TRUE;
+ [( }9 b/ E% uelse 5 `1 \: ?9 G$ P( M
again=FALSE;
% t" }# d) H( a# K+ I% {}
/ N( u3 a- ]# r! W$ W( Y: P}
  A' t" X$ v. A4 }0 i/ M+ P( c==============================================================
1 k3 ?- E8 o) R* q【程序47
: J+ ^3 q/ X# x5 H1 l, ~" W6 b題目:宏#define命令練習(xí)(2) 5 i# e0 m" X+ L) Z
1.程序分析: % f$ u, ?5 _7 v  a
2.程序源代碼:
+ p+ z6 m8 X! {. X2 C& f#include "stdio.h" # i, W6 t. [3 J" i, r6 E8 E
#define exchange(a,b) { \ /*宏定義中允許包含兩道衣裳命令的情形,此時(shí)必須在最右邊加上"\"*/ # T5 ~& f9 f  `2 e! B
int t;\
( Z  Q- T5 X& ^7 c3 S% Xt=a;\ & W+ m' v- F0 Y+ t5 P7 g
a=b;\ / k& u# V+ s4 U
b=t;\ 5 D, k+ S/ E: B& G' ]6 V* J
} # M2 [0 X+ I, W3 b6 o+ D$ D
void main(void)
3 ]) o1 S/ k4 j6 W( o{ / ?5 k# y1 e5 D. |+ I% f. d
int x=10;
  V' d5 I  t# H& Qint y=20; ; L1 |9 ]5 _  @' g4 I8 V" F
printf("x=%d; y=%d\n",x,y);
/ N0 G6 R& a+ j' Iexchange(x,y); * O4 ~; @% w  ?* j! ]% E0 u& k, E
printf("x=%d; y=%d\n",x,y);
. h7 s' L( B  m. r3 E} ) X& j* Y# h7 u, Y8 t$ p
==============================================================
+ N, R. N1 Y+ _【程序48
( z1 \2 ?- H) K; l2 W題目:宏#define命令練習(xí)(3) 8 w) W# m: n" j6 f9 C5 v2 Y
1.程序分析: 2 u0 o2 J; J5 v( T0 C/ ]& Z% p$ F& f
2.程序源代碼:   ]8 ^$ J8 B" N- X& o
#define LAG > 2 A# T$ h, t  N4 G
#define SMA <
( o) L, H) I$ h#define EQ ==
) q) P5 P2 E! X" c) D$ X6 v#include "stdio.h"
5 |% r0 n/ _, s9 cvoid main() : E8 \& Y* T, {5 v$ C
{ int i=10; 3 O9 j6 [4 q( A. R, }4 a6 t: v
int j=20; 2 Q+ F% h/ h. O1 b4 }3 O, [9 r
if(i LAG j) + C& A+ r* \/ v1 B4 ?5 X
printf("\40: %d larger than %d \n",i,j); , H$ @" f# q7 p) J6 C, ~6 L+ j
else if(i EQ j)
: W8 f* o7 `" r% H4 Nprintf("\40: %d equal to %d \n",i,j);
6 {" c% H* g% \else if(i SMA j)
' w* m, S3 B0 u7 ~printf("\40:%d smaller than %d \n",i,j);
& H/ K8 D  w7 [& D" [else   z7 X( m" ^8 S% W* v, x
printf("\40: No such value.\n");
4 c+ q, o6 c0 O4 j}
, q: i/ N) M% d4 m6 _==============================================================
) j& ]: m6 ^3 `+ [
" V/ [. T0 d* `: P8 B; _
回復(fù)

使用道具 舉報(bào)

2#
發(fā)表于 2017-10-8 21:32:49 | 只看該作者
曾經(jīng)自學(xué)C,最后沒(méi)有最后了
3#
發(fā)表于 2017-10-10 08:41:14 | 只看該作者
自學(xué)。。。。收藏下來(lái)

本版積分規(guī)則

小黑屋|手機(jī)版|Archiver|機(jī)械社區(qū) ( 京ICP備10217105號(hào)-1,京ICP證050210號(hào),浙公網(wǎng)安備33038202004372號(hào) )

GMT+8, 2024-11-20 09:16 , Processed in 0.053212 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表