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

C语言算法38-48

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
【程序38
- ]  `2 ~* ?4 ^题目:求一个3*3矩阵对角线元素之和
, U' u# z# v# P- g1.程序分析:利用双重for循环控制输入二维数组,再将a累加后输出。
5 I. v) u$ ^1 p5 z; j2.程序源代码:0 _  |' f  w" z+ s/ |+ {
main()
7 f) ]& I1 M" ?{# u. c; e4 B* @
float a[3][3],sum=0;  n0 c$ F0 E% W" S! U2 L9 J; G
int i,j;
2 {2 w6 s# }4 z4 a# W# v9 j) o5 Lprintf("please input rectangle element:\n");) l' \1 L/ G# V; W8 p
for(i=0;i<3;i++)
6 ^9 g" Z) p- C+ A. l7 ]; E9 @ for(j=0;j<3;j++)- d+ t$ T3 U% m; J6 k
 scanf("%f",&a[j]);
! I# `; ?! _/ W% Ofor(i=0;i<3;i++), n! S( _2 [6 }& d2 ^1 T6 G0 o5 d- u6 r
 sum=sum+a;9 _" K9 t% c% j; l" d" K& k
printf("duijiaoxian he is %6.2f",sum);; i9 d. G. {3 ]4 C5 b5 ^. e; p; w
}( z: X/ Z9 `3 P  u6 G
==============================================================" Y8 \) y  e: P' t: Z5 k7 ?
【程序39
& h* e7 q- c7 e5 ]* h( {/ |题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。) j, W6 A2 m8 ~/ m2 m3 S
1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后
' Z6 x) a- T2 V; ]     此元素之后的数,依次后移一个位置。
) X) Z7 ~# G3 R5 f2.程序源代码:. _8 O1 d/ E) V% E
main()
6 z: U' X' o9 V9 ^9 I{
0 |, q. C1 e( k$ I* z3 Q9 N( Tint a[11]={1,4,6,9,13,16,19,28,40,100};0 M4 T/ w" H- a
int temp1,temp2,number,end,i,j;
9 t. Q( u* [/ b- gprintf("original array is:\n");" P9 E. m* B5 w6 c. L7 r- u
for(i=0;i<10;i++)
3 Q' w3 e) }  M! ^/ z  @ printf("%5d",a);3 g, `& s' u- r! M3 z4 p
printf("\n");# g4 D6 N9 H% K
printf("insert a new number:");
2 Z4 F  C% a! m& V: `+ `scanf("%d",&number);+ i1 A$ K8 Y! b" b1 k
end=a[9];
3 ^( ?% _1 o8 i2 ~8 ~+ a5 Zif(number>end)
6 K; n! D/ d& }( r a[10]=number;7 Z& i5 s7 x8 J+ L  l
else& o# A# s; X  O! g- i' w6 k6 n
 {for(i=0;i<10;i++)
  m# `8 w7 O0 F, a+ ^  u: w. N2 x  { if(a>number)# l3 C" _' C3 @2 t) h. b" M/ m
   {temp1=a;
! I( U; Y/ @. S2 ^' b( P: P    a=number;
0 f9 q$ L. o) U2 _( ]   for(j=i+1;j<11;j++)- s9 H- I4 J( N: e5 }
   {temp2=a[j];
5 j, X$ O, o4 B) T    a[j]=temp1;) e/ i' g( I5 G+ f
    temp1=temp2;' f2 F: Y9 U% c8 t# Z
   }
0 f% A0 {' K8 J$ ?5 {2 W1 }   break;
$ m: {* Z5 }  G0 b) B   }
  j; [8 h6 y4 ^  }) ~8 Y& k" U! |2 ^# G! T
}
/ q# y7 ~6 B0 W" x# g2 ^for(i=0;i<11;i++)1 P" r9 u2 P4 `6 K/ @% n) r
 printf("%6d",a);
& j6 ~0 K8 M  u( C}7 |3 T2 f" X; {6 q1 Z
==============================================================% U) r2 e8 H) [9 @: ^1 z
【程序40' L3 W; A7 z+ c" c
题目:将一个数组逆序输出。
6 ]4 \) o* Z4 v% r1.程序分析:用第一个与最后一个交换。& Q7 Q2 M9 D* C$ @! E
2.程序源代码:% Y  o& v, @& d+ L) b0 }
#define N 5
* t1 f+ \, C9 z9 o9 _) Dmain()
' C  Q* W# N6 `9 x: {6 q( n* u{ int a[N]={9,6,5,4,1},i,temp;
5 W' s2 C" f0 g& s' z3 d printf("\n original array:\n");
: s, z) N& n/ l3 K  ?/ H. w for(i=0;i printf("%4d",a);
9 j+ U3 B  L& ]- G: t( P- ] for(i=0;i {temp=a;
# H) l+ y! }% `& r( }  a=a[N-i-1];& e! Z* r- U; M9 F7 z- q. V4 v
  a[N-i-1]=temp;& P/ n& |  J/ _+ z6 W5 P
 }7 _( h/ f$ r; V. _4 m; [+ ^1 G& Z2 ?  U
printf("\n sorted array:\n");% x  u$ \6 }7 P4 d  R$ e& k
for(i=0;i printf("%4d",a);3 X% ]' H7 o% q9 Z! S
}
【程序41信盈达嵌入式企鹅一一起呜呜吧久零纪要
. y2 r$ u( d( X题目:学习static定义静态变量的用法
3 O4 {2 W2 U! S9 s1.程序分析: : F' c* Z8 G) k; K
2.程序源代码: / t( N# L  }+ [6 E& j/ z& K/ d) C
#include "stdio.h"
0 g& y1 Y9 q; g. o" o3 b0 avaRFunc() : o' m  t* w# W4 d* R
{   X" B+ y% Z  i6 x  s
int var=0;
4 q3 z% V7 Y. Q6 w" Cstatic int static_var=0; 6 Y) q& V7 S1 V2 Z* _' v$ k
printf("\40:var equal %d \n",var);
& p' B0 ^% t- Z# V" Tprintf("\40:static var equal %d \n",static_var); % B; K; ?8 H* U3 G, u% F$ ?- N
printf("\n");
' ^, l* i6 J7 {2 Q( Z8 k# }5 bvar++; ) Q4 [. [- c  v. }
static_var++; $ x+ j7 T: D+ U8 b! S6 y" c
} : q" m, S+ S; j3 L; }& I8 a2 ~: A3 [
void main()
$ B$ I, |1 x( w% o* b{int i;
6 t  i1 S1 E% A" Vfor(i=0;i<3;i++) - m4 Y0 e" n" y) a* c, Z: }0 ~
varfunc();   d, U$ l- a, q* _4 z/ |9 k* f
}
; O4 Q- o  w. W5 A) W% @  U% K============================================================== : p- _1 f! r: S- a
【程序42
, r' q; O1 H8 x+ z0 x2 ~题目:学习使用auto定义变量的用法 & s9 C. A  k9 q6 w! o
1.程序分析:
+ ]& W( P8 P5 \5 H" @6 Z: k2.程序源代码: * \& A' E( ?" U0 W1 k
#include "stdio.h" 1 y( `8 Y. b! S& c
main()
# c2 Y" _, n8 ~{int i,num; $ d) H  f, j; A, |
num=2;
8 \& r" T5 q/ y4 Q+ H! `/ z' Wfor (i=0;i<3;i++)
1 |, I( c) ~8 Z1 x7 `{ printf("\40: The num equal %d \n",num); , w: p. z+ V, H" p" O
num++; + o& x6 u3 m% f
{ 2 M' t7 Q# J! d( H) e
auto int num=1; 0 J$ p+ J% c& W/ V5 t2 @  F
printf("\40: The internal block num equal %d \n",num);
. X& g4 w$ i* M2 T1 q* z# [num++;
+ y3 t( I7 k! ]}
8 W9 U3 W! }+ i8 x% D; M; |- N} ; @7 l$ e  P4 \: c
}
/ t" X$ S9 h1 Q: D2 Z, ^# j$ Z( ~==============================================================
  g8 f) f1 D+ H* c【程序438 }/ s) h/ V+ d  U2 f3 v
题目:学习使用static的另一用法。
. @% Q! n4 ?' M, ^) F$ K5 ~1.程序分析:
; l& R5 ~4 N  q7 s2.程序源代码:
7 p# k# j" Y' J" W$ V7 R. O#include "stdio.h"
3 m$ J: E$ q8 }' G5 W+ Bmain()
9 {4 k: A/ K2 z- _  _{ ; x: j/ r# K1 m1 c
int i,num; 9 e8 w) b7 I5 H4 \3 N; S* ?, }* V
num=2;
1 R1 f4 l, P+ Hfor(i=0;i<3;i++)
  B- z" k# Q1 X$ f{ 6 D" T- U! j$ m  ^" M$ m
printf("\40: The num equal %d \n",num); / x2 V/ Q8 a# l5 p
num++;
3 |$ {; F. N  z{
9 d2 l* R+ g/ w; u; S9 k! U5 Cstatic int num=1; 5 n. s+ }! M, Q  }! Q5 @
printf("\40:The internal block num equal %d\n",num);
  o9 O( u6 O1 ~5 F" @, ^3 W5 Znum++; ; `( C; F$ Q( u- H. F
}
; n2 X; U# N: B2 w  b8 h& Z} " g/ D  Z$ T! ]
} & V# N$ p2 r/ M; Q  C0 i
==============================================================
9 e9 p* y3 ]3 V, k6 U【程序443 O' |) v! |- ^- L5 y: y; [5 _4 Z- V
题目:学习使用external的用法。
; n8 u. W5 {1 ^  D1.程序分析: 2 a1 S, t% l7 V! Y
2.程序源代码: $ |. U( ], {" ]: u: W6 x
#include "stdio.h" " y- i7 s8 g( `
int a,b,c;
6 K' ~* F( {$ z1 J+ pvoid add() & ]3 ]3 C7 r: W
{ int a; " U! U" R( |" h! G& G/ _
a=3; " ]3 X" d  E. `  ~
c=a+b;
9 D6 _) z0 w, m6 }* e" h+ s} 6 ]% n/ T3 W7 N
void main()
4 N: F% z- I4 L# [{ a=b=4; & I* g$ R; j. ~7 s( j  ]
add(); 7 Z) Y: V+ L7 u/ Y+ [9 }( D
printf("The value of c is equal to %d\n",c);
( T* S5 B1 [5 n: I& p( k! p7 ~& I}
' F& ~: ~( ^; a/ u- S0 r==============================================================
) c% R2 O5 t2 w( |0 |【程序45+ D# s9 x$ c+ y$ ?$ e
题目:学习使用register定义变量的方法。
( Z1 n* }& e5 u1.程序分析:
6 _7 W2 x! F7 V4 e/ [2.程序源代码: $ d, {" n2 x2 n3 @! M& I
void main() $ s4 T+ K* S4 F8 n# N8 W; ~
{ 5 n  W. L3 U+ r( j. ^; c
register int i; / N0 F! F. P% \8 p( L5 r
int tmp=0; 8 k* Z4 a' l5 N$ Y
for(i=1;i<=100;i++)
6 {( M  `/ Z0 @9 O* c) b/ gtmp+=i; ' B3 ~) j/ H5 I9 H  T' u3 @- P
printf("The sum is %d\n",tmp);
9 K' i! Z; ~1 Y3 d2 w7 v} 4 ~4 _1 d' Y! H5 C- b  U
============================================================== 8 B1 Q& j" [6 a& B0 ~
【程序461 ~* F# {1 \: P: u
题目:宏#define命令练习(1)
7 K! ~1 R; N0 y$ H. ]; e& [1.程序分析:   ~5 o2 t2 M$ `$ s1 i
2.程序源代码: & ~4 \0 _' ]# V$ q
#include "stdio.h"
% r3 u) L: j$ l# C9 o#define TRUE 1 - F2 U8 Q2 i9 `% D; B; r" Y
#define FALSE 0
4 c6 Q7 K% H; Y( |5 S9 r+ n7 s#define SQ(x) (x)*(x)
6 m! u* y: Z' G% \void main()
' T% ?' G: o- x# ^# {- w{ # X# F; }/ f/ m+ i( @" w* ]4 ]
int num;
( R/ ~2 s5 g. O9 H1 Mint again=1; : X) r0 P: ^( g! C
printf("\40: Program will stop if input value less than 50.\n"); # @6 S: K" f7 v2 ~+ a$ z) D" P
while(again) ( K; |3 g0 W; n! e  U, r! p
{ / `8 }/ Q. }6 ^& z2 n8 {' V
printf("\40lease input number==>"); , }  C$ v9 ~; w
scanf("%d",&num); ! Q1 q8 h/ ~* @, i
printf("\40:The square for this number is %d \n",SQ(num)); 3 f( `# n6 n  g2 u7 u; M5 l
if(num>=50)
) Q& Y7 F0 x0 K5 ~7 Wagain=TRUE; + x- Q' b9 m5 h. n% ~- |; H* x
else ' F# N0 V6 I  r7 Q& C
again=FALSE;
( b4 I6 z, k/ C4 y* k2 d} . `. }. d' S3 F+ P/ q
}
6 m( U6 H$ W# J' I% C============================================================== " W( v8 m1 m* v; F" {  c
【程序47
8 U; ^4 S* z( I" W% [% i- n' O题目:宏#define命令练习(2) 0 R2 q2 e- p5 K& x3 ?* D3 r* f
1.程序分析:
9 P: O/ I5 X% S! ^( n2.程序源代码: & d. s9 a  T: O  p
#include "stdio.h" 4 p6 ^4 H( A6 M/ p* t, i  }
#define exchange(a,b) { \ /*宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上"\"*/ 7 L$ C+ M. s  A/ |+ C0 {
int t;\
" S/ c+ E1 L2 A1 C) y# M) Ct=a;\
- `( w. H6 u+ i, A% q# H4 l1 `& ja=b;\ 8 v5 n) J$ S3 Q' ^& Y4 o/ t; C  \
b=t;\
6 {8 F* ~5 s* V+ [/ P} # ~0 ~$ O8 |, T* e5 X# }. K
void main(void) * L& X, A4 U2 g
{ ! K) C4 u" S9 i; H
int x=10;
' k; `/ }- e3 Q. y: r2 i2 b7 Tint y=20;
# D/ J( m- X% ^1 s( t5 A  kprintf("x=%d; y=%d\n",x,y);
' ], d& `0 L1 z" k3 f- zexchange(x,y);
$ ]4 x$ d  Z$ a, tprintf("x=%d; y=%d\n",x,y); # L( r, U* p1 F  q+ I& i! l
} / v& n9 z) u. r+ ~5 q2 I$ {
==============================================================
8 }: y6 v& W$ c4 ?) I1 U) j: Q【程序48
  L  o: y, @" r$ ^  S题目:宏#define命令练习(3) 9 ~) q; y( N3 A6 ]! S2 l
1.程序分析: ; D( }* H( ^9 u  `7 V7 j9 Z
2.程序源代码: 5 t, Q0 f! m+ ?1 E; [& v4 Y/ I$ Y
#define LAG > 6 n3 l& u2 H3 f7 N
#define SMA <
/ u* \* l9 c  Z" @#define EQ == . Z, c+ h/ R, K9 J
#include "stdio.h"
* X2 d2 T& V3 I/ s9 y" C2 mvoid main() $ n0 Y& X, [# j* z
{ int i=10; 2 A! q! {$ R9 j% Y$ d
int j=20; ; _$ G" U9 P. M" M
if(i LAG j)
8 w2 Y: [: ]. y2 }5 ?printf("\40: %d larger than %d \n",i,j);
2 l7 I0 W& s' S1 X, f% U* Telse if(i EQ j)
4 u" Y2 y$ e" T$ O7 eprintf("\40: %d equal to %d \n",i,j);
' ?4 W6 m2 t& E. W- Z( eelse if(i SMA j) # l! d% f# F- B% Y0 i( K
printf("\40:%d smaller than %d \n",i,j); & K5 x. F% l  n1 e/ l4 j' d% A
else
3 \% O. o: c  K' Y6 U( A7 Q1 \printf("\40: No such value.\n"); 2 c% j) {4 O; E: T' I
} 6 Q6 H4 _- F- J* Z* D/ m  X: i
==============================================================
; o6 }8 W' k1 o

6 r9 @' f! Q2 C

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-31 07:17 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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