找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 75|回复: 1
打印 上一主题 下一主题

C语言算法38-48

[复制链接]

114

主题

136

帖子

1000

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

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

EDA365欢迎您!

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

x
【程序38
+ v! e" K8 v6 m题目:求一个3*3矩阵对角线元素之和
; P8 L* ?' \2 f2 _4 K6 j1.程序分析:利用双重for循环控制输入二维数组,再将a累加后输出。) r% B" {( e6 W) e/ p. R, W
2.程序源代码:
- X! Q; i1 X9 ?. b" xmain()9 |" }8 m' Q% \5 w) y! G3 n' {1 w
{& \4 B! v) e) g- T
float a[3][3],sum=0;, d/ @: s0 I" _" i1 J; f
int i,j;
" e- E) o1 o" g% g3 rprintf("please input rectangle element:\n");1 o( R8 ^4 e: P3 @" N" e
for(i=0;i<3;i++)
* M: h* g: t5 ?& U for(j=0;j<3;j++)
9 x7 M$ n5 y: |6 M, Q scanf("%f",&a[j]);
. S8 _2 d2 C8 u+ L; H0 a" A$ I, \1 jfor(i=0;i<3;i++), l9 @- C% d5 k! Z! A
 sum=sum+a;
! Y' I  l# ~- y6 b! R, |- o# R' O6 ~printf("duijiaoxian he is %6.2f",sum);. K! ]( k+ \! `4 t3 z
}, B* M4 e5 X7 y& f5 ^; C: D: ~, Y
==============================================================! z9 ~/ ~) h/ S6 \* ^
【程序39
0 W" r! S* X8 J0 P( }2 z' T/ M题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。+ ]. h* B8 ?+ P
1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后' ~4 d" i+ L4 q( ~! j, [; q4 `
     此元素之后的数,依次后移一个位置。
" f* r: E- ^& j; r2.程序源代码:
4 G; c4 P9 G+ d- U& N% s5 Umain()* A2 L9 `+ e! X1 ^+ k
{
2 g$ j3 A  C8 W' H2 _4 t) v$ @int a[11]={1,4,6,9,13,16,19,28,40,100};4 v2 v6 [  ]2 `4 q8 E9 _7 [( j! b
int temp1,temp2,number,end,i,j;
, N' D! J: h! {( Q. u& v9 jprintf("original array is:\n");! P3 w: }- I4 ^  F5 h& }
for(i=0;i<10;i++)
& R1 F! E# t0 m) k- g- E printf("%5d",a);! ^# U8 R: I: U3 I6 x. ]4 d
printf("\n");) m" M4 L$ E8 F* L7 [: d
printf("insert a new number:");
6 }8 h1 l, ?, N; wscanf("%d",&number);
0 s& F2 ~$ @' B8 _6 P$ r( w. Nend=a[9];
4 b% A. e" j6 T7 Y! aif(number>end)
$ n6 g, G, L! ~. N a[10]=number;
  e6 ]0 `" l% telse. J! z7 m- q" k( v
 {for(i=0;i<10;i++)
; I* g$ C! R+ o! H  { if(a>number)
7 K; k" i9 U9 B; f# B! E- \9 o- b   {temp1=a;! S: j% a- ^) j  h  U: v# z1 s! _
    a=number;
2 S  x6 n  L. h6 t) E1 x: L' Y   for(j=i+1;j<11;j++)$ C% V) f& o: H3 f, M
   {temp2=a[j];
) u# A; h7 ~/ d, H, B    a[j]=temp1;- y2 e% W  m$ H/ ]1 l
    temp1=temp2;; u" }/ t; V% R- A
   }+ I4 @, c; m9 s( j" v  [, x
   break;
6 L; F$ U1 M! U9 A   }) Q' G+ ^- R$ s
  }( r+ s7 _0 f" L1 i2 P+ y: ~/ g
}
; s. O( b; `: h1 b; m( [9 f- Vfor(i=0;i<11;i++)5 j+ D, |5 m5 ^0 B$ s
 printf("%6d",a);: J5 V3 P. J. ~- h' H# P0 G
}$ C& p/ t$ B$ ^+ Y! k  X
==============================================================
4 O. A3 v, |: x0 v$ @【程序40& T* }' I0 J, o
题目:将一个数组逆序输出。* W5 ^+ P; s7 x5 Q; X0 L) U
1.程序分析:用第一个与最后一个交换。
9 }, ^. V4 G. }% N& _, u# Y! O2.程序源代码:  E: k- R2 D1 z( B) [9 o  S
#define N 56 v& u! L0 l+ h- ?7 @, A
main()
6 `: z, @3 ^7 ^3 H{ int a[N]={9,6,5,4,1},i,temp;2 R1 a% m3 B$ u6 g" C
 printf("\n original array:\n");
% @% c! z7 L% u  U. e for(i=0;i printf("%4d",a);2 f0 j# |, y: b3 ^; x2 q/ p( @
 for(i=0;i {temp=a;# @+ g4 G' W+ b- m0 X9 c* [
  a=a[N-i-1];+ ?, i; G, R' [+ V8 D/ l
  a[N-i-1]=temp;$ X5 o& m3 F4 _# L1 v2 x- X
 }
  z2 t( M/ k0 oprintf("\n sorted array:\n");
9 s1 O/ [9 q2 m' F7 sfor(i=0;i printf("%4d",a);; C* d* g# S8 I2 g/ V
}
【程序41信盈达嵌入式企鹅一一起呜呜吧久零纪要 # U& i( G+ ^6 C8 u: M) F' B
题目:学习static定义静态变量的用法
- n* G+ q# V! g* L3 v1.程序分析: 0 d7 G' j4 G5 j: H. F
2.程序源代码:
/ p# a- d- q& [& p* }5 p' w- J#include "stdio.h"
% j) g7 a+ ^" ]' T7 M- y4 l6 fvarfunc()
& t1 [4 W  Y8 V7 P* f0 Q{
. j4 i& w+ R6 M$ \* Z4 eint var=0; 9 `& w- ], E, e
static int static_var=0; 7 ]! Z! M' w* o5 [- n
printf("\40:var equal %d \n",var); ! v! {4 G7 {. V
printf("\40:static var equal %d \n",static_var); ! q  T! {+ X2 b: k( ~0 i
printf("\n");
4 U( O# ]) Q6 o1 s7 g4 j" P; k4 qvar++;   N( p: _* k* r; y5 v/ K" \4 A
static_var++;
5 J% R, S4 ~9 s1 ]- F} ) u$ |4 P6 C) q
void main() 5 Q8 K* x+ u& [4 H- @# p6 n* h1 `
{int i; $ {$ o+ v) K5 w+ [8 k2 `4 o
for(i=0;i<3;i++)   T; k$ `! P. A. l6 g
varfunc(); 7 W- w# b, G) y! M9 ^
}
% u& V6 k4 C; T! J! v7 T/ C) O* a! k==============================================================
) l! p+ s! m4 E2 i* ^- t; B【程序424 F; D# d  N7 z: Z0 ?5 u
题目:学习使用auto定义变量的用法
, d; r0 e% E) J5 K- g" k' Y/ m: {7 i1.程序分析: " l; P5 K+ b/ S3 G
2.程序源代码: ' z8 K, j: t  A! r, d8 H
#include "stdio.h" 1 Q: x4 o' r+ T  g" y: |0 P
main()
+ M; a9 f3 F! X, d1 G{int i,num; # t5 m/ H, q/ U/ C4 |( I' Y" c$ ^
num=2;
' b& C! W" F: d5 L: gfor (i=0;i<3;i++) - @/ k, x8 h5 L  V
{ printf("\40: The num equal %d \n",num); 4 R: L( x/ [, R" n" `3 Z
num++;
, h+ B- `6 J7 [& K{
. v4 d8 P+ _2 C8 f( M4 L, Dauto int num=1; 1 U/ H. y/ k9 k7 l1 E
printf("\40: The internal block num equal %d \n",num); ) t' H9 t  D2 p$ \( L8 h8 L* ?
num++; * H% D( e, L6 W& N5 K) ?) c
}
- T2 x7 F* v3 o) C1 Y} 2 O8 W( m9 \. x3 z% _
} + A. F( y' I: w) G3 S1 }2 q; o
============================================================== " @" b0 U) n: c: @, i4 y
【程序43' j- [+ w: _* Y/ {
题目:学习使用static的另一用法。 - k6 j& e2 ^; i" r8 j( r
1.程序分析:
* m  X5 ~# B0 x' {/ ^2 K2 M% ]2.程序源代码:
( }$ l( I8 n8 p" x4 p; n" |- N- B#include "stdio.h" - |3 p$ R' k$ o" j9 [) W; m& {1 M2 X
main() 8 {  ^# Y' v. b/ K( O
{
5 o4 _" l0 c. B; @  Hint i,num; 9 s8 ^1 f) t# i
num=2;
/ T$ t) i% E5 k# |+ Z  ofor(i=0;i<3;i++) - K) a9 O3 O) ^" `" m$ q1 [. f' M2 Z
{
2 i6 s7 v( t/ Y4 Yprintf("\40: The num equal %d \n",num);
  G' S# Y' w3 H0 vnum++;
# V9 o, ]3 {4 o* w: e{
8 [  @. \* Z/ Z/ Mstatic int num=1;
3 v: i6 V+ z  Uprintf("\40:The internal block num equal %d\n",num);
* |5 |! ?$ l% p9 {$ v; j7 Anum++;
" a/ _/ ~/ k4 T- i6 }4 V0 W}
# T, V, \# ~) y4 A9 |7 @7 p& Y} / T8 ?4 c: G( M) u/ J
}
* }# U3 R/ t; R4 u==============================================================
8 Y1 B5 X& q1 ^) [8 i, P2 R3 q【程序445 F; t! b: k. P( o8 {
题目:学习使用external的用法。 : X5 {. R  Q2 ~
1.程序分析: ! m  B) Q. B+ Q
2.程序源代码: 8 B4 U! G. N2 L$ t2 [8 Z
#include "stdio.h"
: H6 e; A- A8 kint a,b,c; 1 ^. N/ R8 e6 r, t- I3 B( \$ k
void add()
$ x6 ]) t6 c5 W2 K+ j- a  }) g3 t{ int a;
9 U- f6 P8 z6 Q: n: b8 s2 @a=3;
: r2 Z4 `. s- T& ~1 p$ w) ec=a+b;
2 p# o" w& G, z' K7 o6 Y} . n4 r0 Y9 t  x$ O( b
void main()
! Q  @3 t1 A7 n2 U2 b6 _8 Y8 ]{ a=b=4;
" M2 f# v2 h% j- a# p3 Sadd(); 7 ]4 k% n+ _. u3 ^6 M: ^- ?
printf("The value of c is equal to %d\n",c); $ Q3 D) d6 y0 ~8 Z  b
}   t. |1 {9 X3 @
============================================================== $ m, O8 f% K4 E: }
【程序45; ~+ \3 J' M2 e3 x' k
题目:学习使用register定义变量的方法。
# U* F+ \9 ~2 Q' t# S1.程序分析:
& p; @+ |& r6 L7 \1 e+ _7 Z2.程序源代码:   k& C* {7 j+ D( {  W
void main()
8 Y: F9 i- @) e* P" e7 @7 H' {{
' d  F, a( o/ K) G" v0 \3 ?register int i;
0 n( y5 k* L6 D4 Jint tmp=0;
4 f. c' V2 V. x8 Y3 e7 ffor(i=1;i<=100;i++)
0 T! I1 A: o9 I( W0 r7 Itmp+=i;
- i% _7 I% g# p# R+ Dprintf("The sum is %d\n",tmp); . }9 r6 g  R. E( M, q0 F
}
& K  _  I. i! S$ T============================================================== ) S; l# n. h" J) C0 P6 I/ |1 X( I' I
【程序46
9 j+ `/ a" p) L2 k4 R9 ~2 C题目:宏#define命令练习(1) 3 l* P8 _. O9 H3 j& O# c) r( o+ i1 R
1.程序分析: / X/ c7 B0 _. K& C; m+ ?
2.程序源代码: # e- n6 \3 ]7 s! Y; d" B! }
#include "stdio.h"
2 I9 v) u2 y, p2 Z1 x) }#define TRUE 1
" A8 Q, `0 y/ B% l( q2 H) i- J1 g#define FALSE 0 8 K! @$ @& g( [; \6 z, s* ~! b2 C
#define SQ(x) (x)*(x) + U6 e0 }" ^! S5 N8 \( B
void main() 5 j9 B9 M5 P- o
{   m. h& m2 j; ?; p
int num;
) w8 o9 M- y' }int again=1; 0 c; F+ X: C  |0 q+ c9 t
printf("\40: Program will stop if input value less than 50.\n"); 5 D( b: M3 }; z# j* n7 ~. u
while(again) 6 D6 i! j! T2 v! D! m9 E8 V1 Y
{ : [" s% }& q6 G$ X% y
printf("\40lease input number==>");
( L6 W# y, v9 Z' r# dscanf("%d",&num); : t9 N' `" n2 Y7 g; P
printf("\40:The square for this number is %d \n",SQ(num)); * [# P. }, }) L5 B
if(num>=50) 1 D3 G5 [# U- r" E) k5 C/ q( N5 p7 i
again=TRUE; 2 ]: j4 N" w- E/ y4 L7 [% f
else $ J) f7 p* `4 A+ ]
again=FALSE; - T' @" b7 ^) ]# P/ U8 g
} ( _; P/ y( _) @" \: n- m
} " V0 R" v1 k9 ?" Y, t6 K
==============================================================
, g- j$ S4 I8 V【程序47  x# n& {, R5 ^; \
题目:宏#define命令练习(2) 7 ]; W4 I& D  t7 Y' n* ~0 Q
1.程序分析:
. Q, v  M- Q* M. ~( M- ]2.程序源代码:
4 _# ]$ j" L% u; H) i#include "stdio.h" 4 V, f0 P5 g$ s- u
#define exchange(a,b) { \ /*宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上"\"*/
4 v# P: ^6 R& s9 Eint t;\ % T9 C8 h; C/ x7 ~3 B& a9 h3 V
t=a;\
$ K: m; G# U3 c# P: oa=b;\ 7 I/ u( C6 F$ _& u
b=t;\ 8 `9 D7 f6 r: _
}
- x% S; w8 n1 t6 y2 D' R) Lvoid main(void)
5 u) n$ D8 J4 M: E. O{ - p5 w' l! {+ W. ?
int x=10; / w) G7 z% X2 p
int y=20; 3 P; X- ]( [! R1 u
printf("x=%d; y=%d\n",x,y);
! e! t. H- V) I4 j6 J3 y8 Texchange(x,y);
- R0 e3 v0 \/ o' d. Fprintf("x=%d; y=%d\n",x,y);
8 U  k& X: |2 r7 V1 M+ S}
, R9 M( _$ h7 C1 A7 ?==============================================================
8 ?: L) Y4 @7 d) N1 n. `【程序48
1 D6 c" g. S3 z5 E4 f: @题目:宏#define命令练习(3)
5 P) d3 y* g+ T6 m3 m1.程序分析:
; G. x- `  `( y; Q; G: |- C/ W' x2.程序源代码:
7 w. G3 L; t: o1 t) Q( n: {( j#define LAG >
5 H# G; Q6 M+ Z#define SMA <
. M7 l2 n/ B" n6 U# Q' d0 T#define EQ ==
! S$ O6 _4 Q- Z6 S: c#include "stdio.h"
* \+ U; @/ G. V7 t9 L  K/ |' I% fvoid main() ' N9 N9 ]7 i( a2 R' ~  l
{ int i=10; 1 u, U! Q6 d" K5 l# z, \
int j=20;   q7 ?( k' s, [& V; e& {* j
if(i LAG j) , i/ ]% F' Z  p6 w) d! ~, A$ W5 {
printf("\40: %d larger than %d \n",i,j); ) g  X0 y' U8 A2 a
else if(i EQ j)
* j1 k1 [1 P6 S7 Kprintf("\40: %d equal to %d \n",i,j);
: `0 c2 P* C6 j- v/ k& |else if(i SMA j)
5 U3 C; z, F  S3 {6 N9 Q1 M) w0 L2 pprintf("\40:%d smaller than %d \n",i,j); ( N5 H$ Q2 v. s9 ]
else / N, c( V9 S" ]0 w& ~
printf("\40: No such value.\n");
& E- x1 ]9 e: H  u! F} 6 E+ o! n: J8 h9 x/ o3 i1 F
============================================================== # L3 z# p5 p9 k( T! Y7 m" ?# \

( E) Z3 p( _- R1 L7 T8 Z; P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

0

主题

103

帖子

711

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

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

本版积分规则

关闭

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

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-10-18 17:19 , Processed in 0.076818 second(s), 32 queries , Gzip On.

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

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

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