找回密码
 注册
查看: 512|回复: 1
打印 上一主题 下一主题

C语言算法38-48

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2017-10-8 14:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
【程序38
, T. A# S- n4 `) ~2 a$ S$ x题目:求一个3*3矩阵对角线元素之和
# C7 w3 z. G- ]3 T1 X1.程序分析:利用双重for循环控制输入二维数组,再将a累加后输出。8 A7 F0 l9 K5 G6 L" t" U
2.程序源代码:
- t) s2 q$ k# Kmain()
5 s7 {- J: `! s. ?& ^& f8 w{
: q: y% V- l8 d0 g: D3 O$ o7 Hfloat a[3][3],sum=0;
4 j/ P# z+ e$ l; G4 b! C8 zint i,j;
/ q$ C3 ]( o" I3 i/ Iprintf("please input rectangle element:\n");) T& R) g2 J  w& K
for(i=0;i<3;i++)
5 d: U7 J+ ?/ z" X1 K for(j=0;j<3;j++)
; k4 E  n4 v/ G  ]% n/ R scanf("%f",&a[j]);( f/ G! O8 V& O$ f- o: V8 J
for(i=0;i<3;i++), S7 i$ H9 U$ u
 sum=sum+a;" P& i- @% U+ J" b4 x1 v2 d" T0 i% j
printf("duijiaoxian he is %6.2f",sum);' x$ ?3 |: h+ q; }5 L) g, N) X. u
}
. O- e5 m7 ?( _' W3 R' _+ ?' k==============================================================
+ f' ~1 @/ y, E【程序39. f3 j5 ~; U+ b
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
; o0 C" {( N3 h6 a) E1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后
+ H, m0 `4 o* q+ s8 f4 h8 V     此元素之后的数,依次后移一个位置。
* k& q4 E8 n: R( v2 _  w5 t# `2.程序源代码:
$ J/ J) p  Y, W- Q3 fmain()% c2 }5 I, O. \' |3 ]0 i, d
{/ ^# W0 r5 t/ {& u& j
int a[11]={1,4,6,9,13,16,19,28,40,100};  j1 |9 l7 i$ N5 R" W
int temp1,temp2,number,end,i,j;
) u5 K& F( d5 b1 h* V" cprintf("original array is:\n");8 D/ r& c3 Q% |, r$ |" s+ Q
for(i=0;i<10;i++)
# T5 a4 g. z' J8 g+ z1 z) e printf("%5d",a);
4 O3 Y& g* k5 w% F3 f  n' Dprintf("\n");
" b0 q  `6 ~3 R# N$ l. k3 P$ R) Y- K  \printf("insert a new number:");5 {0 c: ?0 j$ [3 t
scanf("%d",&number);
/ _  ]/ h6 B. c! m& E* fend=a[9];+ V' f: ^) G0 V
if(number>end); h7 ~+ G8 l" x* D
 a[10]=number;6 z& U6 F, S) c3 m7 q+ c5 L( H! E
else
/ d8 l' a; ?) \3 C/ z8 X! ~+ G {for(i=0;i<10;i++)
( l: |8 F6 u# ]0 @" _% x  { if(a>number)& I: e1 E% u: i
   {temp1=a;
+ T7 l" d0 t0 ?    a=number;0 t" f7 T. |0 K1 n; R" a' ]: I6 f* S
   for(j=i+1;j<11;j++)& |- s  X1 c. G
   {temp2=a[j];+ t/ b% [- B0 |/ r' y
    a[j]=temp1;
+ p/ Y  M% n! p) M7 O! H    temp1=temp2;
$ w; ~. |5 K; J& b9 _   }
( ^9 p2 ]! E: ^# u   break;
# q: Q: X9 F" I# l* {6 j   }. O7 t: N( B( z! B( o8 N$ }8 D
  }5 h6 T. b3 y% K6 y# W/ B5 j9 m* i
}
- C$ A( n! `, gfor(i=0;i<11;i++)6 g1 t9 t! K* G+ H
 printf("%6d",a);. W4 \6 F) h, f3 Y# r6 e
}0 W4 X  [& D# c/ l
==============================================================$ y+ L+ e+ U7 y8 F0 O# E2 K
【程序405 |& W9 l- u0 t6 t  }/ e
题目:将一个数组逆序输出。
& \! P. z  d: e( Y: D* k1.程序分析:用第一个与最后一个交换。
6 U$ p7 X: t: |7 n- w2.程序源代码:- t4 @; i/ W2 T& G7 M: O- h6 G
#define N 5  Z2 U9 J/ Z6 r! y! R
main()# o& m: e: @" y9 L$ p# z
{ int a[N]={9,6,5,4,1},i,temp;
& w- H4 M- B9 ?4 n( x/ ? printf("\n original array:\n");+ A0 G+ T) F3 Y, F
 for(i=0;i printf("%4d",a);, }7 v2 L- r# W5 ~# Y
 for(i=0;i {temp=a;
! r; _  Q& p0 x* S7 w7 A- z  a=a[N-i-1];' L) ?+ Q  X+ I& Y7 b3 Q
  a[N-i-1]=temp;4 J9 U7 b- L. m# \
 }
* v2 h6 [$ \4 rprintf("\n sorted array:\n");# E; V0 A5 y- g2 x9 [6 y, }& U, n
for(i=0;i printf("%4d",a);' Y+ f( g( I$ R$ A2 Q; h* K
}
【程序41信盈达嵌入式企鹅一一起呜呜吧久零纪要 , G) S" a, G, ~% {" b5 r$ ]
题目:学习static定义静态变量的用法 $ L* Y0 G  U+ `! M9 q$ `
1.程序分析: & N* q. q. r- Q% o, p8 j, ~  m1 x
2.程序源代码: 8 D* j  x: X) t; }9 _. x* V4 X5 u+ K
#include "stdio.h" 4 e; P. y$ r4 D  E  I! Q  K
vaRFunc()
. b6 D+ S' J: k2 O{ : y! r0 H$ U2 `; T
int var=0;
$ c3 B0 i) m1 d3 N9 @  W7 Q0 [static int static_var=0;
% h" Q" b, R& h7 L4 g# f& C7 S1 Mprintf("\40:var equal %d \n",var); 5 g9 R, C' I" l- R
printf("\40:static var equal %d \n",static_var);
  k1 h, w& H" v8 `) c+ t& U( Eprintf("\n");
' h9 v# c, ?: S% T: v! Cvar++; 9 q/ P% J6 N! H( x+ A$ |
static_var++; 7 d$ T: f# ~. ^8 @4 N3 ]
} " q- t' `; \/ R/ X. m+ G
void main()
' I/ {6 R0 A; `3 W! f7 u1 m{int i;
/ ~8 B  P9 ^7 q1 [; \for(i=0;i<3;i++) + B- l) a9 R- O8 r2 O3 E
varfunc();
# \. Y% }: n9 G6 ?# \3 R0 `} + T: {& c5 Q* H+ S9 T# L; X
============================================================== 7 |8 Z  F4 C  u0 p. `" A7 }
【程序42+ o8 G, `1 q, t: d$ P" ~' m
题目:学习使用auto定义变量的用法 2 w' O, V3 G0 m" S# J& W
1.程序分析: 1 Q4 A% d' S. r& D7 p& v
2.程序源代码:
0 n  Q( v! n6 u, Q" j$ V. C# Z#include "stdio.h" : G0 W" F$ j$ p/ ^% b
main()
& A7 T1 {; x6 F# z2 l) x{int i,num; 6 e& b3 k; [5 S" c0 e
num=2;
( v" V7 y0 A/ Q+ T/ E2 xfor (i=0;i<3;i++) ' d- m0 e, r9 |
{ printf("\40: The num equal %d \n",num);
2 t+ o. K. ^1 @5 J, o+ _" E3 lnum++;
3 w4 S* r0 }+ j/ D{
; j6 c7 r  _2 m2 P  cauto int num=1;
' K7 I6 T6 ^* R' |) [  hprintf("\40: The internal block num equal %d \n",num);
! T0 E* F( O  `3 r& a% p% anum++; 6 z- H1 G( J+ x6 j# ?
} $ B: n4 |* S* v8 q7 t( e/ ~$ j
} ) {2 M# z0 {* c% `$ |: V7 x: a
}
  n& E! {- F# P% R0 e: S==============================================================
0 [- K6 ~6 U( g( Q【程序43
, q9 a  ?; |! A- X3 h/ I' e题目:学习使用static的另一用法。
. b# U( I- h- r# g1 h" ^1.程序分析:
6 V& L7 j2 A' P$ {) c2.程序源代码: ; q" d0 Z0 o: o  K9 G7 n7 W
#include "stdio.h" + E7 [* ?/ |  ~, t
main() 2 r! s/ Q* J% K* x7 ^2 Q4 A
{ " H3 s# U9 L  F9 ]8 X- w: }' l+ _
int i,num;
2 a7 M) j# o" @num=2; 6 i8 a2 v: R1 Z9 ~* i0 f' {3 H/ L
for(i=0;i<3;i++)
; d7 E" e; ~3 @: }3 L  P{ $ ?3 u9 O/ F5 }. Q: h
printf("\40: The num equal %d \n",num);
% ^5 U3 P2 e/ i) p8 t( ~9 snum++; 8 v" A; o  q4 W7 t* L
{
& B* v+ K% G- Z: }+ c2 u* Astatic int num=1;
; P; I9 j0 e( f' q* ^7 N' h6 Kprintf("\40:The internal block num equal %d\n",num);
4 k3 c, i; N: N. }1 Jnum++; 2 O# O& J; a, o$ ?% x
} 8 ^4 l  |" ]4 a+ Z+ n6 |1 y! c
}
/ C  ]0 A3 |( H. z& H}
8 j% X9 B& G# ]/ X3 h7 A============================================================== ; k- ?6 G) ^6 q: m& o
【程序448 ~8 v$ ~5 j! q
题目:学习使用external的用法。 $ O. u9 @9 m1 h+ x8 m; S: |
1.程序分析: + E- D+ M+ X& n7 x3 l; e- Q5 L
2.程序源代码: $ S! [6 N. z6 t% ?: Q8 v5 }
#include "stdio.h"
: W" O! B; _; |  Y+ q* o( |int a,b,c; # \8 K$ G& `, m% G& `
void add()
3 j7 y; E& ]" l! g! X3 z: z{ int a;
* A# I9 C+ o# }% H7 Z# E/ r( N6 ^a=3;
/ S, L  b! O3 V! V# z% j: }c=a+b;   R' T7 Q8 w/ @; f0 ?6 J
}
3 Q# z# |/ ^0 k1 \! o- W9 Pvoid main() ' H6 c3 |' [) `5 ~
{ a=b=4;
& l$ f8 L2 P0 e6 E3 Uadd(); + P- @* |$ \# X1 T! N& n- n$ E
printf("The value of c is equal to %d\n",c); 2 P# J1 Z& N  l; F- [
}
3 X9 s) k  I4 {4 g( j& l8 ]==============================================================
. l# c4 @. r1 Z: u# c7 D' @【程序45: N0 C& [. {4 u' F- E2 d
题目:学习使用register定义变量的方法。 9 J- w9 S* E  X, G
1.程序分析:
3 k+ [) H* V% s3 A! U4 P$ d2.程序源代码:
% w- O  ?# B. f# R; \" F: F  Ovoid main()
* M4 ^: [! r. I* W. Z0 ]- Y" e/ z) H{
. T6 a5 T1 _' G# R! K) v3 Yregister int i;
- K/ e# X: P- O" e% U$ x7 A3 r2 ]int tmp=0;
. p- M* y+ @) u% |" Q" L# Rfor(i=1;i<=100;i++) + G7 G: ?$ D% Q' F# F, E# I* ^
tmp+=i;
% C  y" Z8 ?& _printf("The sum is %d\n",tmp);
. s, f3 ~& @- P+ D}
  w5 }* N0 O. L: Y* r! m============================================================== / m% M2 a' q9 _( z
【程序46
8 ]6 t4 R1 m. k$ z: b8 L) J4 P0 W7 i- f题目:宏#define命令练习(1)
& _7 W! l( N; @  ^, P1.程序分析:
5 m/ [1 h# E$ h1 O& m2.程序源代码:
! O, @) @' S+ R! M; p( u#include "stdio.h"
2 Z& [; _! b) M* Q) b#define TRUE 1
( U0 f7 X1 Q% M8 ~1 }#define FALSE 0
$ Z) I' K7 ]# U#define SQ(x) (x)*(x) , e- ]* x4 Q% O6 Q6 Y
void main() % p1 b( e4 m& \" G- T
{
. F" s: S6 [2 q  L( Iint num; 1 e7 {* y  S, ]9 U! I& P/ h! L
int again=1;
$ V/ ]" ]# J" hprintf("\40: Program will stop if input value less than 50.\n");   |" I2 y! l0 J3 }1 t5 v8 p
while(again)
- A4 @& V+ a2 i) B8 z; U{ / |9 R$ N! N# H5 x" S! r  R; G4 \6 p
printf("\40lease input number==>");
3 s$ u/ j: T1 \5 s7 C; {* M, Nscanf("%d",&num);   x( v5 b! d2 D  @/ ?
printf("\40:The square for this number is %d \n",SQ(num)); . M' Y/ }! h2 B. h& A9 |
if(num>=50) / Z, `# o& @7 m% Y% Q
again=TRUE;
/ r, {) o" o" c- y+ P) ?1 celse
  j; z; I/ I0 m1 j' Magain=FALSE;
6 B) C! C) W" V1 a4 l- s}
9 P; b) g/ n  }1 X} ( ^% Z/ f2 G( ^2 f/ c
============================================================== / t; M) s  s$ n" t, P: l
【程序47
) j* s4 l$ ^) x/ ~题目:宏#define命令练习(2)
5 }7 a/ c4 m+ `1.程序分析: ! ~0 w- ~" W6 v2 H* ]$ Y- U
2.程序源代码: + p* j# A: E6 c7 a
#include "stdio.h"
, u% @: A# g) x9 ^#define exchange(a,b) { \ /*宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上"\"*/
+ L. e+ A. F- |4 S6 L+ j; Gint t;\ ; l! L2 m/ Y$ H* }/ i5 j& D
t=a;\ 3 O2 p# W8 W% w# u+ @
a=b;\ 8 F: O9 x, R' e3 H1 Q
b=t;\ 5 q( v4 f' B  \2 m& e' C1 T6 X
}
1 V% Q# \8 m- _) [5 Uvoid main(void) 5 j. b! _* L1 m& F
{ / W0 L" V- d( j( b0 y4 e
int x=10; ( o- }" D$ w( r& F5 U5 D
int y=20; 1 I% Y$ i, `. Z; f$ |
printf("x=%d; y=%d\n",x,y); & n! n- A- _( w0 `
exchange(x,y); 3 r4 e3 j3 M! L, R2 m- j
printf("x=%d; y=%d\n",x,y); / O8 U6 r" v, R* h% I0 K. r/ c
}
3 s9 o3 w9 n) v) x==============================================================
5 ]5 S8 H% a" \* I; {% t【程序48
" N, Y2 |$ y: n1 O题目:宏#define命令练习(3) ( s3 K* {" \- n& q+ p6 V8 A2 z9 H$ `/ i
1.程序分析:
5 S9 ]: n% `+ z* w; V7 M% n6 ]2.程序源代码: % N4 h$ V4 ?- @5 j
#define LAG > * E, M! d+ G/ j1 S. {% c+ I
#define SMA <
- V: v' k9 j) \$ o0 _# Z' E#define EQ ==
" T% ]+ C3 w6 Y) ?5 A) T% K#include "stdio.h" & b  c, ?( Z* g
void main() 3 E1 M$ K$ A7 Y! _$ d* k. x& g  g
{ int i=10; ' ], @- C5 @8 X  r0 H
int j=20;
4 J4 m* m0 K3 sif(i LAG j)
* q: K( W$ E4 n  d; H) G6 Lprintf("\40: %d larger than %d \n",i,j); 8 T2 O! N; w9 k$ ^  D
else if(i EQ j)
. S" D% |# i2 F+ {& nprintf("\40: %d equal to %d \n",i,j); # l& D2 B8 ]0 ^
else if(i SMA j) 8 m4 p2 ^, t4 S/ z/ l- b
printf("\40:%d smaller than %d \n",i,j); " a2 d( B6 q9 k9 |2 H4 t. P  z
else
5 v) N$ E; [  Vprintf("\40: No such value.\n");
& _3 @# i8 E' ]5 [}
5 c; P4 d) P- x5 n3 @2 T============================================================== 0 `& T) i3 A/ r6 p5 B# A- {

8 h4 g/ r: l% ?8 n0 D4 N1 V

该用户从未签到

2#
发表于 2017-11-25 19:59 | 只看该作者
谁都不容易啊 ~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-5-25 06:11 , Processed in 0.078125 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表