找回密码
 注册
关于网站域名变更的通知
查看: 544|回复: 1
打印 上一主题 下一主题

C语言算法38-48

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
【程序38
# b& X/ D+ t, K2 n题目:求一个3*3矩阵对角线元素之和 8 I$ r6 j/ ]) t5 \5 K3 `2 n
1.程序分析:利用双重for循环控制输入二维数组,再将a累加后输出。* C" D/ X/ l0 ?, [
2.程序源代码:
3 p, @' \2 ~0 i7 L3 g- Rmain()/ u" Y4 t0 _% E
{
9 Q% f3 |  N" O4 Y2 X8 O. wfloat a[3][3],sum=0;
. p6 A" I9 u5 w% g2 aint i,j;2 M/ O7 Z2 c7 d0 a% V9 Z7 E
printf("please input rectangle element:\n");/ L" j  T! z- [; q
for(i=0;i<3;i++)0 z- ?% i9 o1 c6 }: e
 for(j=0;j<3;j++)5 X2 b1 P1 H0 t- }( i3 P
 scanf("%f",&a[j]);
, s* b; l! W+ B: bfor(i=0;i<3;i++)- f" N) U* m0 }: v3 p5 a# ?2 F( k
 sum=sum+a;
8 c) O0 Y& A0 l. gprintf("duijiaoxian he is %6.2f",sum);8 ~! H' Z% l- t& J6 D* U
}
# k9 G! J0 M% ~* O# \- k, b==============================================================
  Z) t6 K% S+ o$ z" i* W3 ^【程序39
. p% _7 e& Z) S6 w# k" O题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。9 j& h$ v+ F, r  ]$ B, {
1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后
, v# i% z9 y2 Z. d$ ~     此元素之后的数,依次后移一个位置。 2 J6 _  r3 C( f5 w
2.程序源代码:2 U- P+ R4 y/ k2 l
main()0 T/ z9 S; R3 k
{- G6 H% b3 P, z9 D9 [- M
int a[11]={1,4,6,9,13,16,19,28,40,100};
$ k6 `" r! N9 I" J# d) K0 l! }( Oint temp1,temp2,number,end,i,j;# u1 D  ^/ \& d( O
printf("original array is:\n");, S4 p( f( Q: ~
for(i=0;i<10;i++)# ~: ], r+ }5 _6 [/ _/ W# P
 printf("%5d",a);/ Y5 ?7 `+ D* ^  w5 M
printf("\n");) t1 }- l7 k% A
printf("insert a new number:");1 L1 ]! j9 c8 y
scanf("%d",&number);5 o, o7 i7 k% e
end=a[9];
0 A  k( C! N) tif(number>end)( s5 @0 S( h. u  J/ B1 t; S
 a[10]=number;- u: f: w$ j. \% J
else
$ x! s7 ^  L  N% v" W' B/ m& T {for(i=0;i<10;i++)" V  V! k3 m: i& H
  { if(a>number). Y3 T9 G1 B& X6 I! H9 V: p- G/ }
   {temp1=a;
6 N+ h1 A0 j9 l2 a# x7 J9 W    a=number;
) E8 D1 S. X; g; v" N- G   for(j=i+1;j<11;j++)
, x- J% f3 E- z5 L   {temp2=a[j];; g0 \- w2 r! ?3 N+ K
    a[j]=temp1;% i' m4 V1 F% T: P4 e% k! B
    temp1=temp2;; g8 S; ]* B" z; I& V
   }
: \8 R. f8 k8 r! X  O# x4 r# d   break;  K, u) L2 E% K' e. p. W
   }5 G: b% x: d/ _* ?
  }* p! y; h3 m; N
}
, h* J* _3 Z# M+ Xfor(i=0;i<11;i++)
- {& R( L, b& q* ]- {' e; M: K* h printf("%6d",a);
( d* ?5 N) d( [. g' v}
& O0 Y6 z8 R6 t8 @* q4 l  ]0 a) n==============================================================* [7 _+ M' Z1 E* G
【程序40) |# u+ z" I6 U: [; V
题目:将一个数组逆序输出。
/ ?. Z. F/ Y. w; W. l1.程序分析:用第一个与最后一个交换。
" W5 J" z( x) D3 a- n2.程序源代码:
( [+ H- x, S. [% B3 }. y' y#define N 5
4 [( [4 W; i1 a& y2 p- o! Kmain()
* ]% n4 f& q/ n. G! v7 D( p* ?{ int a[N]={9,6,5,4,1},i,temp;) l3 D- S5 Z+ ~4 O  g) W4 c, {+ H
 printf("\n original array:\n");
5 k/ J9 S& u6 N& q  Q( q# y8 z for(i=0;i printf("%4d",a);
& u8 S3 i. g- h: | for(i=0;i {temp=a;0 V6 B7 z+ d: K
  a=a[N-i-1];# k& E) V& f  ]2 x3 Q; v
  a[N-i-1]=temp;6 D% v* {0 O2 m, t7 R  l
 }
' g. U0 e& V0 r& w: Yprintf("\n sorted array:\n");$ q* n! B, Q4 E) r! t
for(i=0;i printf("%4d",a);4 b* ]/ h+ }( L1 d8 x
}
【程序41信盈达嵌入式企鹅一一起呜呜吧久零纪要
" w$ F; a% T  r- d题目:学习static定义静态变量的用法 ' ~3 z1 w) A- G  x% o7 W
1.程序分析:
3 {  [$ ~. l2 }0 [5 q2.程序源代码: ; a% D3 I8 `5 L2 {
#include "stdio.h"
- P5 O  a+ Q7 U7 }9 avaRFunc() ! E& u* S& I# @0 L/ `
{ 5 s' [) Z3 u8 N" b" g
int var=0;
9 }: b3 X; R* v# v" c  D0 D- }0 ]* Jstatic int static_var=0;
; z# p% W8 r% D' V5 {1 n; u' iprintf("\40:var equal %d \n",var);
1 n  v: ]: a% W2 n7 t& h* [printf("\40:static var equal %d \n",static_var);
$ `" g4 _1 A2 iprintf("\n");
( k& y* q, _* }6 T# H( Hvar++;
' |9 M! P) o1 l3 B! w8 s7 r+ Qstatic_var++;
- H; o5 u/ s9 P# H" Z( z) h} - {: c, t- Z7 a, P5 \) Y
void main()
1 H+ l2 |  c& J: {1 `1 t{int i; 2 h- h8 M4 t, k/ a5 C' v- N% z" I
for(i=0;i<3;i++)
( j- O4 K- [6 T! u' K2 {varfunc(); $ s" i5 e, P! z* g6 F: a% u% k
} 7 g) k) k6 H' J' ?1 Z6 B1 D: L
============================================================== . \3 U3 D4 R  p
【程序421 c* e9 x* X, B" Z: @( p  _+ D
题目:学习使用auto定义变量的用法
9 V+ r: j( |) [1.程序分析: " I, d4 g8 [( f- `5 B: L9 l
2.程序源代码:
; e1 j% p) i, e3 L( L8 y9 l3 l#include "stdio.h" 4 A% c: s% ^- {4 X2 r
main()
& B- G! d5 s& B/ n' u* O- [{int i,num;
- K" C' m6 E- Y2 z: Enum=2;
. r1 Q: q- ]& `9 l3 E, W/ e4 @for (i=0;i<3;i++)   Q$ Y, O* G+ X: i: k/ d4 u# o' H
{ printf("\40: The num equal %d \n",num); 5 }; U# d& g  W  `) r; S
num++;
# a8 e, z5 J3 l1 N; t{ ( |2 e3 Y9 D* w: X
auto int num=1;
  E+ g* `# o. _: O+ T  [& M& Uprintf("\40: The internal block num equal %d \n",num);
. P7 G2 L( H5 C9 Y' Z" Pnum++; % b* m5 Y! i+ j7 `, U) C. |6 S5 \
}
/ w  Z% s( W9 b, M: `}
* W$ m# U5 e4 x7 K, C}
. S& J# |& X, q" @* s============================================================== 4 X2 f1 N  V, D7 @
【程序43
9 @7 Z" A4 a& R6 J9 f# P: f' N9 k题目:学习使用static的另一用法。
9 q& O2 u; U! ~3 K' R9 `% G1.程序分析:
  x% o( G3 t8 _2 a3 U# p) ]. y' s2.程序源代码: 0 x- l. R9 _/ X( f  I5 n+ q
#include "stdio.h" # t: w- ]2 @9 T7 M4 z
main()
+ s$ `3 U1 d/ D* |* ~3 e9 K* Z{ - o. [  r$ {4 C8 P( I# n# i* J
int i,num;
4 H3 K2 e4 s; j5 l" a8 Ynum=2; ( c# F6 _+ t* U+ G' O$ Z
for(i=0;i<3;i++)
6 A  R+ C! q9 ^* i0 n{
$ L- L. Y3 F) z- T! v  Dprintf("\40: The num equal %d \n",num);
( B* H0 u7 l9 h: u) i6 W! d9 ?- Dnum++;
+ H; M8 y4 c4 J& G, \% L{ 7 b9 }: {( L7 h, }* y6 r. R+ U
static int num=1;
" z$ M1 V9 B7 w' y3 k. a9 rprintf("\40:The internal block num equal %d\n",num); ) Z9 x# R) `: |0 P* s7 S
num++;
; O! O8 m8 N  H- G' C, }% @1 w} 0 V. s2 D9 ~/ {0 ?
}
5 c1 J) s9 y: `- K9 R8 @  m} / @, Y4 f$ B- Z' P. C: f% G5 N
==============================================================
: a9 u8 s4 ]; O7 t) X) |/ l, b2 b【程序448 N- Y) X; o) W& t5 H; d
题目:学习使用external的用法。 ( t& S) n% N$ `  U8 ~
1.程序分析:
/ x' k9 F1 `& Y- e2.程序源代码:
0 t' [+ @# B* b0 L* z#include "stdio.h"
' m' c8 B  H( K$ _$ j- ]. A- eint a,b,c;
, x- o# X9 N; o4 z% `void add()
. G/ C: b0 N3 E3 L9 A) z{ int a; 8 c( A. [0 j+ p+ e
a=3;
! \/ s7 k% z! M1 ^- D: T/ o/ hc=a+b;
% A+ ]! A4 ?) {5 L$ d! O}
  K! z9 ]' o1 P9 K) ]void main() # w& U* }- ~7 Y2 Q
{ a=b=4; $ \% g1 q3 z. x8 Y) u6 Y( I
add();
  H2 ^! ?) v5 i7 _9 l" {printf("The value of c is equal to %d\n",c);
5 q! i9 _. j9 M: i} $ r1 V+ P: w( M/ m
==============================================================
) @$ z$ a5 f0 P【程序45
6 N7 V/ I4 t0 A, \( s- D" i* c题目:学习使用register定义变量的方法。
% H" F+ `! o/ R1.程序分析: ! q1 e6 P; c6 T8 p  j. h
2.程序源代码: ' L1 X" B0 h% v4 i# k" m& ^5 }" H
void main() ) @3 _; y6 S5 ^& z" q- ]% x
{ 5 b  _) {- x/ ?6 n6 d. i8 j3 `
register int i;
/ D* j8 t* o4 `) [4 {: z2 ?int tmp=0; : Z% X  [* I6 P
for(i=1;i<=100;i++) * S9 F- `7 I5 S8 a# j( ?) h. ]
tmp+=i;
/ W5 m+ o8 n5 w: M, T. i' I6 t( yprintf("The sum is %d\n",tmp);
) |0 `  z# J- j5 S9 Y+ v}
& g" H  \+ h/ Q$ m==============================================================
7 f: W; q  s1 d【程序46  x8 v- |" V- B/ ]9 y6 a# o4 g8 B( v
题目:宏#define命令练习(1) 9 T# W( }$ s/ Q
1.程序分析:
: _+ V+ ]5 D# [, Q. A/ r- c% y2.程序源代码: * ^: |7 Z; v+ p. P9 c. R# V( [0 _' [$ r
#include "stdio.h" 5 p4 B6 a0 o3 x7 O2 N
#define TRUE 1
9 r4 W0 N5 c' C. ]: B#define FALSE 0 & Y' Y/ D# d3 n
#define SQ(x) (x)*(x)
0 k' x7 O& ]/ ?* A. \& f4 T+ G/ ^) [void main() 5 b# |$ h- S3 r/ v
{ 2 e7 }+ A# A4 V& s4 h$ h
int num; . ?- g( y( T3 C$ c
int again=1; 6 s1 h: O8 ^2 p# E" ~
printf("\40: Program will stop if input value less than 50.\n"); / S% y7 }/ k1 x) F/ P0 x
while(again) , X' W+ S6 K8 b
{ + h5 \% f5 K5 R8 I
printf("\40lease input number==>");
" `6 W0 {0 S  Pscanf("%d",&num);
; y: Q7 A- v7 C4 Q5 b* h& Uprintf("\40:The square for this number is %d \n",SQ(num)); ( [0 X; O6 y0 {" m7 F( o. S: N
if(num>=50) 4 w# @+ t( X$ ~* n5 h0 D
again=TRUE;
& s8 |; H( }, H4 j1 Velse
, V8 F! B; b& S6 `( Q/ Wagain=FALSE;
  x4 V' m  |0 q  |9 D) I} 5 e1 n: u0 c, u
}
5 v' ^, p: e; m6 R" ]! a( l6 U============================================================== 4 `/ e6 |: X+ a; T( X
【程序47
- ?9 m9 C3 ]$ K题目:宏#define命令练习(2)
% V. I% l) w4 d! d1.程序分析:
/ N, T# P& Q/ r, s2.程序源代码: . ]4 z# A' j" J) P) V( W
#include "stdio.h" % _3 o3 y' \6 I  p; U
#define exchange(a,b) { \ /*宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上"\"*/
! h0 T$ Q$ z. I# @int t;\ ! B% [+ ~/ [) i( f, k3 v' |, b
t=a;\
0 r& b& V, y- [a=b;\ 0 c4 y1 M, j* D5 S- t
b=t;\
  x1 I6 k; D& i- x} ' R% g8 ]& W% L7 m8 U/ G
void main(void)
! r$ c# A, _1 R+ @7 ?! z! U{ & J# o  e/ A5 ?5 D8 A0 A' Q3 _
int x=10;
0 l4 X/ z; u- f  ?9 W: iint y=20; 7 q8 u" Z& z+ ]/ s$ q
printf("x=%d; y=%d\n",x,y);   K, {7 R! ]2 j) m" @+ V
exchange(x,y);
$ s' w* Z. k. v( L$ Kprintf("x=%d; y=%d\n",x,y); 1 ^. `3 J, u8 C- X8 k
} " O2 _% D- ~3 r6 z8 K3 S( p" `
==============================================================
! g! a+ h9 ?) a【程序48" }* K# b+ q* a
题目:宏#define命令练习(3) $ d/ ~" ~5 _0 j' a9 ]8 H9 ]) k
1.程序分析:
0 p* C/ i9 V: k2.程序源代码:
; p3 i1 W4 ]# H1 }% Z#define LAG >
" Z0 q1 O( _8 I3 w#define SMA < " i$ ^, h1 ^" N. N( }; s& b
#define EQ ==
& M- x4 {( E. B7 [0 ]5 X) I1 A#include "stdio.h"
6 ^+ u5 I3 f+ T4 m/ T- B- e9 Rvoid main() ) @. @9 t; p8 O8 A# e) N3 m5 y
{ int i=10;
0 A; g8 C$ Y( E. {9 _  Tint j=20; + r/ c% R7 G0 A
if(i LAG j) ; P; i2 d" e8 b$ W8 N7 J- F
printf("\40: %d larger than %d \n",i,j); / i! J" s& L& s/ F! P
else if(i EQ j) " P, o% @2 u& T- F1 d3 [5 q& A
printf("\40: %d equal to %d \n",i,j); 1 b6 ^- j+ m8 v1 P
else if(i SMA j) , w8 o& T& q" {8 ^% v1 `
printf("\40:%d smaller than %d \n",i,j); : A$ x1 X3 W4 k0 l5 A7 @
else , @; U. f8 r$ D" q5 k( Q
printf("\40: No such value.\n"); . m5 J' o& a* O' O
} 8 L1 ^! p: m1 q: g9 t# N
============================================================== ) J" |  o2 i, q8 T# O/ H( x& q
# K$ E2 D. s3 Q+ p$ z" e* {. T# b6 P

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-9-5 04:24 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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