找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

C语言算法38-48

[复制链接]

114

主题

136

帖子

1000

积分

四级会员(40)

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

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

EDA365欢迎您!

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

x
【程序38
7 N) c" i  t# r) w0 k题目:求一个3*3矩阵对角线元素之和 ! P. p: U, T) V- m
1.程序分析:利用双重for循环控制输入二维数组,再将a累加后输出。. v* T* G0 c& [' _
2.程序源代码:1 z/ C, u, U" z1 Z) s1 M& y
main()
6 d8 u: F8 l8 a{) w  s3 b& h; y. }3 l
float a[3][3],sum=0;
' W5 m$ W6 z. t# ^0 v9 Dint i,j;
9 P8 h3 ]4 E" Z' xprintf("please input rectangle element:\n");2 R1 o4 g6 d3 N* V* J
for(i=0;i<3;i++)% B% `4 h( }# f( d# S* o
 for(j=0;j<3;j++)
5 d; X- W5 a# k- r. X' E2 y scanf("%f",&a[j]);' I2 i% B" M/ r9 g# ?1 t
for(i=0;i<3;i++)8 l1 N4 \5 j" V+ L/ V* i4 M
 sum=sum+a;
+ f$ N8 q$ B& _1 O& P( `) X, Rprintf("duijiaoxian he is %6.2f",sum);/ c9 X( Z7 w& |4 {' n9 [
}
7 |( v9 K& r0 n" p& x% w! `- Y==============================================================6 J( w, {. i) V2 o
【程序39
) z) h8 x- F+ K( z+ K: r题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
  g# x* n0 T: _  k& n1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后7 V1 l1 W+ Z: ?6 |4 c6 ]0 ?1 J
     此元素之后的数,依次后移一个位置。 ! r3 v1 J0 b  W  i, T4 p8 z( k
2.程序源代码:
1 n7 |1 H6 e& umain()
7 r: `# S. C$ n. i/ n{
6 h3 Z2 q2 q0 G, r# I0 V8 g: tint a[11]={1,4,6,9,13,16,19,28,40,100};
7 v8 M! X5 H  \, oint temp1,temp2,number,end,i,j;: }5 O( j! C7 m4 u' V- l# w; e
printf("original array is:\n");
3 B5 m& V) h8 Q+ H% P( v, a+ k( Nfor(i=0;i<10;i++)! n9 t6 C! X% ], f4 `8 p5 b) W' Y
 printf("%5d",a);8 ^- y+ `9 e7 {- q# }* F
printf("\n");  h/ m& e$ N+ a6 G3 F) O( C3 b( e
printf("insert a new number:");& n% E$ e2 i$ `) I: N
scanf("%d",&number);# C( B$ x# ]6 y. C
end=a[9];8 G" `: B; M* K2 y9 G  K
if(number>end)8 t1 X/ r( O: d- x
 a[10]=number;- r# C0 D/ i  q. X+ }
else
1 b- _# i4 Y, [4 R  E- K {for(i=0;i<10;i++); w- \5 C  i' t. r
  { if(a>number)
* D, G9 w- |9 T   {temp1=a;
* @: w% _: Z  f' d( e8 B( P    a=number;6 |0 h  t5 S0 f) L
   for(j=i+1;j<11;j++)3 H2 Z0 m" D+ ^; `
   {temp2=a[j];3 [: H& I) P! u' Z# N. C+ n, @/ N: G
    a[j]=temp1;
3 ]( D2 W% Q0 A" C, R- K' R    temp1=temp2;
$ D1 N& O3 ~& S1 e% S$ l9 s   }" E5 _: m( Q% j$ u2 ^
   break;
% B9 P% I; x4 a   }
" K4 J3 y% o6 R" _3 m- H  }" ~% R$ a9 z2 r+ t
}
# ^& t( O' Z- B9 Zfor(i=0;i<11;i++)! ^* g$ b0 J% r! b
 printf("%6d",a);, a+ p9 h" y6 y5 ~# c' d
}
/ R6 M5 V1 @% n; K==============================================================) j# Q" F( \0 |6 k  I6 r" d
【程序409 S5 @$ Q8 x  k* |, ?1 }
题目:将一个数组逆序输出。* O0 b9 B' |$ B; ], G6 V
1.程序分析:用第一个与最后一个交换。
0 r1 y: G: u! W3 Q3 a+ z; I& J2.程序源代码:+ Q  X, c* j. A+ G; `
#define N 5
! H0 H1 x/ G7 Q/ n$ nmain()
! q: [/ @) h2 e$ i- y7 a5 s2 h{ int a[N]={9,6,5,4,1},i,temp;
8 x' U5 C& q3 R" M printf("\n original array:\n");
& S- F8 [' M+ f  a2 k$ Z for(i=0;i printf("%4d",a);
; R5 M# ~. P  `7 U for(i=0;i {temp=a;/ c0 O7 K9 _& y" U, q
  a=a[N-i-1];- e' I/ b, o  }- d- C  K' Q. w
  a[N-i-1]=temp;# I+ c6 G' N9 E5 U, K7 g" l  _1 k( ~
 }
; ?7 A% b" U8 _5 H4 pprintf("\n sorted array:\n");
- ?" F. N$ Q# G* t* Vfor(i=0;i printf("%4d",a);" V9 A! a0 ~% i# j  \
}
【程序41信盈达嵌入式企鹅一一起呜呜吧久零纪要
! O2 ]; ~! r# s( K& D题目:学习static定义静态变量的用法
4 _; X. b4 b9 L, w* \5 w% E) O9 O& P1.程序分析:
2 N! E3 U  F6 @+ ?% s2.程序源代码: & P3 g& \% a) J
#include "stdio.h" ; n1 B; d/ i* l" _
varfunc() 7 N8 W) Q8 }1 B2 r% V% b
{
7 U# E/ }/ Y* _- d% Gint var=0;
9 y5 Z* Z/ D9 Y) Estatic int static_var=0;
, y. ]" g2 k5 r6 C6 {5 e  c/ {) @" aprintf("\40:var equal %d \n",var);
: f; G4 n$ Y5 }! \6 [printf("\40:static var equal %d \n",static_var); 5 w: i. U! r; u7 p% P, V
printf("\n");
3 {; ?: z" n! bvar++; . b  e5 U# H" `
static_var++;
" x; N0 w" @1 A. v% B1 J% U. p} & ~: }1 t  c: ]  A6 y# b0 L) R9 g
void main()
) {, Y, s* i9 A: j1 l, v9 ^2 m{int i;
$ n) M: \( R/ C: nfor(i=0;i<3;i++)
% O6 {' ?; e7 y1 bvarfunc();
+ c. ^4 `& O& l8 |} 0 m6 Z' T0 a4 j$ L1 ]9 ]" m# H
============================================================== : R0 z- M1 Q9 M1 k; {" ]7 d& F' U" `
【程序423 ?, }" C- o; o
题目:学习使用auto定义变量的用法
6 b* q7 z; w" ~: H1.程序分析:
; E: Z  q# h; j% B2.程序源代码:
" l. g5 ^2 c: F#include "stdio.h"
) a( m: j: N4 x/ k  D* Imain() / n3 ^: }, t1 [, l( O) V) n
{int i,num;
- j# n. |0 S* G5 Vnum=2;
0 ^* v$ _( t$ ^8 I/ |4 J5 T6 i3 `for (i=0;i<3;i++)
& f9 T8 v1 ]! g% b$ O  n# z+ v3 O{ printf("\40: The num equal %d \n",num); ! I! e0 `  Y* W7 o5 z5 n' `, L
num++;
2 Q! w5 Y7 C2 d: [+ w$ y4 R) d{ ' e0 L+ Z% X/ q# \/ x/ G$ y
auto int num=1;
  I- }# i- T; r/ F/ l/ n; G! lprintf("\40: The internal block num equal %d \n",num); 0 h0 f+ s0 ^0 [
num++;
$ C, H0 o* F8 ]1 a7 _& _4 ]}
3 i  R* M; u  T  I% ?} 1 M1 H% W) O! h0 ?5 n
}
% T, I. u0 P1 u9 ^/ b============================================================== + @4 J  M: E& X4 {* H0 e3 G
【程序43
6 ~1 P& d# y" B0 T, x; |# ^5 X题目:学习使用static的另一用法。 9 z( q5 @+ m9 }2 H) p4 X$ Z
1.程序分析: ; x; [; K6 M) N# y" J1 [& H
2.程序源代码:
. K5 P& {1 x7 m6 q#include "stdio.h"
( \! e/ W1 V* J' N0 O0 ~# D9 @main()
2 j: I8 Z; c( P! W{
4 }1 H, A1 P: }& T2 Bint i,num;
3 {% P4 S5 i: H% C. P& ]6 Inum=2;
: E! u! y0 P5 }for(i=0;i<3;i++)
" C5 S% A8 `9 x8 g. V) E, s{ ' O! B6 O8 l# W7 f3 l" n
printf("\40: The num equal %d \n",num);
# W9 p+ e& R8 {num++; 4 t2 O7 C1 c* g
{
; I& w: D2 z# @5 c) Vstatic int num=1;
6 [! @: b8 e8 m. o  Uprintf("\40:The internal block num equal %d\n",num); 4 T0 ^' F- c# t8 e+ {" P# ~
num++; , e; m" w  F, j2 P" H  P
} ' v9 a8 \5 X1 c: y7 s% t4 p
} 5 M$ Z+ ]) i1 q0 w& ?
} 0 h0 g. b. ^* m  Z
============================================================== ' ?6 O& U8 {! x% n
【程序44/ f7 \1 J7 U2 n% q' v% i: L
题目:学习使用external的用法。 0 o# c3 [! j% {- U2 G
1.程序分析:
$ n0 r& J% V* _3 h2.程序源代码:
, o4 j3 u( t3 I8 V' J6 T#include "stdio.h" 5 |, X, x6 J! u" D3 m( A
int a,b,c;
  K. A/ s' J* P2 K9 Y( h3 @void add() . _+ J  j( ~4 y: [" y
{ int a;
* g2 U' z& E! J0 w% U! a! a( s, Ca=3;
) T9 t7 d* k8 ], g$ M. Wc=a+b; " o3 ~/ I3 D/ t6 A" C- e
}
6 I+ [! t+ Y9 f1 y5 M* D" S' h5 a8 Tvoid main()
0 X3 O; O3 u- ]8 Q" C{ a=b=4; ; x; u7 _& _( y+ o0 d1 _  D* e, S
add(); . V7 b" e7 P/ k4 b) j
printf("The value of c is equal to %d\n",c);
+ Q% F6 }1 T* J: o7 u}
0 m8 u% G" j# ]+ C4 O/ }8 b& R==============================================================
. D" }' R0 |4 o! n3 d$ A5 E【程序45
) i( V/ e( V4 m* l; R# h% v题目:学习使用register定义变量的方法。
! d* T5 l' F$ M0 i6 @1.程序分析:
% L, I' R6 O) K2.程序源代码: + H4 G7 q( o7 w" f1 l
void main()   G# d# Y6 Z' w0 W9 U( O
{
# O* z* F. E1 b9 H. nregister int i;
# T  s+ P$ X; s9 I# Y; k4 j- @int tmp=0; 4 o; C# Y( ^7 [' {( q+ O
for(i=1;i<=100;i++) + Y- y6 A$ _* v. K
tmp+=i; ! _' Q3 O' J% n# x6 ?
printf("The sum is %d\n",tmp); : F( c3 l% A  f3 i' C
} . X8 Q  }  }3 ~8 w* y0 Y5 E
============================================================== . C, h& x' I/ ~) E9 P1 ^7 G0 h
【程序46
: Y, i) ?7 e9 T: a  p; ]& Y3 U题目:宏#define命令练习(1) 7 K8 Y7 Z. ^7 Q& X; R3 ^8 w
1.程序分析: + s4 v% u8 d, r! c9 f# n
2.程序源代码: 8 U5 a) Q; w; K
#include "stdio.h"
9 E9 A; [& c- f$ A$ b#define TRUE 1
2 _5 m! _) y: [9 v#define FALSE 0 - z/ b& o$ [9 r3 `, i  }# v
#define SQ(x) (x)*(x)
. B! }+ ~2 D0 I0 V, Ovoid main() $ y2 Y+ a4 [' M1 h# _8 s
{   S1 `! C; M1 K7 r  r
int num; , [/ d$ X4 c7 P+ ?9 o0 S& t
int again=1;
- j' I' b1 L- o# Sprintf("\40: Program will stop if input value less than 50.\n"); 9 f2 d/ v5 ]- u; Y2 U0 s
while(again)
; h) e  I+ {$ d) p4 G{
, E5 _) V/ ?* D9 x+ n6 c& Eprintf("\40lease input number==>");
, N* V2 e% C% t  Kscanf("%d",&num);   t& u8 b/ N  E) W6 |; T
printf("\40:The square for this number is %d \n",SQ(num)); % R* P9 l* Q  N' Y
if(num>=50) 1 b; N3 t. f3 B8 \0 n% ^. U
again=TRUE;
  U* D$ o* z! I$ v1 ?2 l' b  T* Relse
! O! B7 e6 j( ]again=FALSE; " \) A! G- ^; ]$ F
} & {, K8 Y8 S3 ]1 G2 Z( `* J9 ]
}
! [# i1 h4 V( H+ p& F+ v============================================================== + Z. {0 S, ^+ B0 ?; z
【程序47
# y8 w: L% \0 Q6 f) e) I题目:宏#define命令练习(2) . Q* `% j$ p. }1 K* |% k( |. W: K
1.程序分析:
$ R5 b' C4 z3 V$ s7 t: }2.程序源代码:
% G4 _! y9 f7 N; _; D% d#include "stdio.h"
+ G  N$ c- M" c- V; s7 _* ~2 @#define exchange(a,b) { \ /*宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上"\"*/
" K( I( t$ ^* E& U. o4 rint t;\
  C2 _4 Y) Y4 b. t' k' }t=a;\
! W6 \' K+ F' c1 V/ La=b;\ ! x5 t3 T, ?; f/ Z4 m$ ~7 O7 y
b=t;\
5 G) j" v' g3 d* T1 j" a* W}
  c5 E" H8 W* A2 H$ xvoid main(void) , e( ~6 U( ]( ]4 [6 t. |6 @
{ $ F3 J. a  x+ C; p: q. C" H5 F
int x=10; ! I. ^/ n& E( z) B
int y=20; . s9 b5 {5 x- N
printf("x=%d; y=%d\n",x,y); + W/ H$ `" {: z3 V
exchange(x,y);
9 J/ R( w2 p, }printf("x=%d; y=%d\n",x,y);
9 M! J0 r. J( _& n  H}
" }) Y7 E8 s- ^/ O0 T) v==============================================================
) l# U: V: B. y' o$ {【程序48
" ^) n5 m0 _) z  m$ |9 H6 ]4 g题目:宏#define命令练习(3)
/ G, K8 J% g% D+ ]; X1.程序分析: 9 L0 H+ ?/ u* K5 p
2.程序源代码:
7 u/ A' z% y1 Y+ T#define LAG > : W/ u, f& E7 |
#define SMA < 6 s) ~- k' C- [/ W7 y" p7 N1 z
#define EQ ==
4 ~8 T- o0 J; J. l& C, v#include "stdio.h"
0 B0 v# y) l' Z0 x& ?1 Y+ kvoid main()
! z9 M" V! h8 i9 J5 j{ int i=10; , K0 M& h  S: m" f/ e* d
int j=20;
! o( @9 w8 y, T8 B( |! H. Q$ \( iif(i LAG j) , ?; D8 |$ [$ V9 o4 F6 e/ j  {3 c
printf("\40: %d larger than %d \n",i,j);
, c$ O" f4 |* R. d  ?) I% U0 u8 Gelse if(i EQ j) " \' Y# b& J: x4 U
printf("\40: %d equal to %d \n",i,j);
/ Y! y0 P; T2 gelse if(i SMA j) , G! `' ]5 L, T' j
printf("\40:%d smaller than %d \n",i,j);
: \5 e7 N, p0 I8 zelse $ h7 r1 t& y" i0 L  E' Q
printf("\40: No such value.\n");
$ U5 d1 n# T, O3 Y+ a# `  x  p}
* z6 p: \3 e# ~5 X==============================================================
, C" C9 u2 N: D  O( |% w9 c( V* [( m- ~
  ]0 X5 M" ~, `  {6 g5 Q& d
分享到:  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, 2025-2-2 22:44 , Processed in 0.057037 second(s), 31 queries , Gzip On.

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

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

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