找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

C语言算法38-48

[复制链接]

114

主题

136

帖子

1000

积分

四级会员(40)

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

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

EDA365欢迎您!

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

x
【程序38
( Z$ D3 t% [$ e) t* e; E: t题目:求一个3*3矩阵对角线元素之和 % i- ?3 |% J* }
1.程序分析:利用双重for循环控制输入二维数组,再将a累加后输出。( S+ {1 U4 u* h
2.程序源代码:- ]& e) o. D7 ?1 Q8 N
main(), \6 {& _' H9 z' M5 q
{* D% \$ P4 N/ _
float a[3][3],sum=0;
( L, V* v0 G- uint i,j;0 u% K3 q$ y) a
printf("please input rectangle element:\n");
4 K% k  T* [( |: Y& j4 rfor(i=0;i<3;i++)
* b0 p" ^: P! c1 N+ L for(j=0;j<3;j++)
4 |* |( }4 `5 B0 W scanf("%f",&a[j]);
8 d7 `! s8 S2 G4 Y, Zfor(i=0;i<3;i++)3 f* n/ e! W. H( ^
 sum=sum+a;
$ |1 e0 J& O& a8 Hprintf("duijiaoxian he is %6.2f",sum);! p! Y+ a/ ^4 Q; R
}3 ~# w: m$ V! e* ^- L6 v
==============================================================
5 ~: _/ d6 t" O: s' T6 v【程序39+ O; q+ O, m5 u8 @) O- i1 f
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。4 n; Z7 v- O% Z+ m$ e& n9 r4 V- \& t
1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后
4 R6 ^9 F9 a9 U! o) V! H3 }     此元素之后的数,依次后移一个位置。
# {, ?2 M* n. G( `* |1 C3 j2.程序源代码:
- u/ n) N% c. i+ y3 C$ wmain(); _7 Y+ A7 E4 P3 ]& ^
{
, }5 r8 F; j3 {! a2 Nint a[11]={1,4,6,9,13,16,19,28,40,100};5 N$ }9 _/ W# ]; D  _
int temp1,temp2,number,end,i,j;
% [& o6 a: f: x  {. ?, s# g, dprintf("original array is:\n");
( ^1 v: z3 M  {3 M$ W/ r% V9 U  Ufor(i=0;i<10;i++)
6 ^% `7 ]* k, B$ N printf("%5d",a);- _' W4 f: A: d  U
printf("\n");2 }: q/ ]; ]& l  O3 o+ s
printf("insert a new number:");2 S4 x+ U# |. R0 ^7 @* \$ n9 [
scanf("%d",&number);' n+ E& `  {" a+ |, w; z
end=a[9];/ e& K3 d& z6 F% H2 b* @3 S! X
if(number>end)
1 z! T! N! q  M) l" X2 q4 j7 i a[10]=number;
$ @- }$ r! y7 Q& i; |) S; qelse# B" c( C) r/ u+ \: p
 {for(i=0;i<10;i++)! s5 t4 c" B7 s% c( |$ H
  { if(a>number)  a. I: w' G( G
   {temp1=a;
, {# ^$ C' \, A7 n/ k- B    a=number;) |8 ~4 d: O" R% y
   for(j=i+1;j<11;j++)5 H9 e0 R2 J! [  e. Z- w) U
   {temp2=a[j];
, _% p6 [6 ^5 E: r* {3 S    a[j]=temp1;
# H% f; v( H& ~' l$ e* X5 V    temp1=temp2;
* R! M2 Z( C1 \   }, {' G1 S+ H& ?- }
   break;
7 u: C" E% w4 e! T   }. l5 I% k3 Q6 B; }/ P
  }- b7 T0 F" y5 E9 J% i; ^5 s
}
- S! r4 F4 s2 f" O6 J5 x  }; Pfor(i=0;i<11;i++)
! I# y% l( _+ J  B" o) { printf("%6d",a);
' O. O5 M: D) x+ ?}, T1 H5 {: g9 S, z( y- O) ]2 D
==============================================================
/ Z/ v5 X. S9 ?& T" c【程序40; r, ]0 h0 K0 k5 J+ i7 h
题目:将一个数组逆序输出。" P( [% C/ p, A& K6 C2 U2 e2 F
1.程序分析:用第一个与最后一个交换。+ `& S/ d+ o/ f1 Y/ r6 M8 O5 X
2.程序源代码:
! ?7 z% _, E) l7 S#define N 5# S6 ^8 [. [) [6 G- [9 W
main()
" L2 C4 m! x  K; Q( M! m{ int a[N]={9,6,5,4,1},i,temp;
* ]4 ^( X: n" o8 q$ f printf("\n original array:\n");  X  o* l# O& P. H  Z) L
 for(i=0;i printf("%4d",a);: \' B' b) ~, |7 u4 ]. W, R$ W
 for(i=0;i {temp=a;
( W1 c. N0 L% H" A0 I0 b9 ^  a=a[N-i-1];9 u2 o4 ]# q  \6 _9 \
  a[N-i-1]=temp;
$ x6 R/ b2 S* `6 u8 T3 w0 {8 F; w) ] }
  k" O0 _6 s  T, u  z( Vprintf("\n sorted array:\n");/ I$ Q/ X) @7 g0 W/ V, D
for(i=0;i printf("%4d",a);
7 L$ b2 v9 p  ?0 o: _}
【程序41信盈达嵌入式企鹅一一起呜呜吧久零纪要 , f7 ?% @; T! w; T
题目:学习static定义静态变量的用法
* r- z$ A/ }; ~7 y1.程序分析:
- [1 J" u6 l) t) F2.程序源代码: 2 }) ]* d- r+ X2 s
#include "stdio.h"
0 L' W' K# @4 i7 `; b+ E& b" M1 bvarfunc() * e9 m& V) U8 w% |/ l1 r
{ 2 G5 `7 D: x9 g
int var=0; ( I0 a9 R7 w* V' O0 T& P
static int static_var=0;
# y1 W+ V9 N! Y0 N+ I7 nprintf("\40:var equal %d \n",var);
. w2 P5 P" U/ U2 gprintf("\40:static var equal %d \n",static_var);
& P, H1 k1 Y: o( y- Q0 g7 k% }9 dprintf("\n"); 0 f5 n& i% Q  c! v* \% ?  R
var++;
$ b$ i0 [% \. W/ ~5 Dstatic_var++; , R+ a) Q; N* F. m0 L; I
}
% _, \6 G( q. I9 m' wvoid main() ; q8 T- g, s9 F0 I( B% p0 B
{int i;
" h+ D& M( v8 v1 a1 c7 S) Kfor(i=0;i<3;i++)   S6 `2 s# O$ }  E1 b
varfunc(); 4 [. r* M- d7 N; x) n5 ]
} $ Y( W$ d+ n( |5 k7 D0 z9 ^
============================================================== ; m" V7 m5 d7 g! e* t0 G5 H4 V6 o
【程序42
3 W. _/ m' g& s2 \0 e题目:学习使用auto定义变量的用法
" v6 A$ B& c6 k; `1 U+ y1.程序分析:
  f# w. k3 Y3 k7 ~' r8 t* t9 v2.程序源代码:
& z1 L" E, r- ]6 j8 C0 n#include "stdio.h"
6 Z& z' _8 `( M+ K( v6 Gmain() 2 R3 B. f. q: e/ N3 j1 C  ?
{int i,num;
" H! q7 s4 }! P, U/ z- R, anum=2;
6 z! Q+ d  I$ P3 \' Bfor (i=0;i<3;i++) / ~7 {1 E' D) N: F, W( U0 E
{ printf("\40: The num equal %d \n",num); 4 g8 J9 p5 `- m/ l  K; ^8 U
num++; : Z% x- ^0 L+ D4 r! I
{
; M0 ^# V8 X! S) U0 u, h" o* xauto int num=1; ; Z1 V, R* K# H/ U1 y4 e3 x2 Z
printf("\40: The internal block num equal %d \n",num);
! G) a) Z1 P* }/ Unum++; , F/ s4 {; H/ {4 _, ~
}
/ ]3 K. q0 S) `}
3 i! ~' g; Z3 o2 K" ]. J+ P}
  ?# ^$ @/ {( G  D============================================================== ) I+ m$ m( F* c7 b- e
【程序43
9 x* v6 u: |/ H+ r0 E' H题目:学习使用static的另一用法。 3 b/ n& q/ ~+ ~0 Y$ [
1.程序分析:
5 r& R  G9 _* ^+ y) S& ^2.程序源代码:
6 \, E' R0 @! `! `, x#include "stdio.h" ) l8 C' N1 o5 ^7 E7 F/ R3 J8 N
main() : I# Z4 H" W- B# v
{
9 b  m( i/ t& P$ E2 a% {1 g- O) Jint i,num; + u% d9 X. m$ y1 l& N
num=2;
0 H7 \. f! d1 n$ y% m$ U; hfor(i=0;i<3;i++) . c, h' J0 i; V
{
: g8 k, r7 V* _' B! uprintf("\40: The num equal %d \n",num); 2 w, g: `7 y* r' P7 w5 W$ J* R
num++; 0 Z4 I$ I# P5 i6 X( L3 \
{ & b; ]+ J. _& s7 d2 V/ O2 m5 E
static int num=1;
$ |: d' j1 x" q4 C1 X; w  ]printf("\40:The internal block num equal %d\n",num); & q4 D5 ?1 M, L6 Q% e# J6 L. z( s
num++;
) h6 O. j3 V8 L9 r* S' n" [} ( o* z- J. k. i4 S
}
9 J/ W! e" {) b1 V}
0 H/ p8 z: l' j8 G% M! o============================================================== 6 a  K- Z4 v5 ]% y6 H5 g7 n0 z8 }4 q' t
【程序44( M! [. X$ v. a9 m+ ~# F
题目:学习使用external的用法。
# p: F) n  Z4 J! j8 s& c1.程序分析: 7 ]0 |) ^% Q7 K1 k/ n  {3 g
2.程序源代码: ) _! r- g( E5 q7 s5 J$ d
#include "stdio.h"
- Q5 D( o; u, s, Sint a,b,c; ) l$ |5 ~8 R  z. X, v
void add()
+ p0 Z: s8 F1 ~$ M$ T{ int a; 3 w) L1 g3 I4 H4 Z( E/ L# c+ e  Y
a=3; % |# }! B. P4 s
c=a+b;
. H8 g' Z& G2 g- n( k' a- D8 s} 2 [/ X% q3 W! p& b) X
void main()
; r2 W9 O/ J$ J' a" ~{ a=b=4; 4 @& N8 p8 L' ]& [# W/ V
add(); 6 ~0 t( A" R$ _; w7 `3 q+ ]
printf("The value of c is equal to %d\n",c);
, `5 n7 o1 S# E} " n9 l4 H; A+ b* @1 w# p
==============================================================
1 R4 ]8 W, D! l# ?8 ^【程序45
* c6 ?0 ]% j9 h/ T题目:学习使用register定义变量的方法。
; o4 ^& V7 g8 r) h* S5 H  G1.程序分析:
# Y1 y+ B$ A: F8 k+ r9 @2.程序源代码: # b; l3 y: T+ k6 g
void main() 8 W2 t$ \, p# f6 m( v% y
{
- P6 [5 p$ }. o' w9 {, xregister int i;
! K+ {5 A: M7 tint tmp=0;
+ P) n  C3 m' `) p, Ifor(i=1;i<=100;i++)
6 C0 p4 r0 [3 V: `( s& L( qtmp+=i; 6 B/ ]# m" I4 t2 ~. c$ |7 W- j
printf("The sum is %d\n",tmp); & S9 |6 J: G! r: c' p
}
0 [2 H" x. D: Y==============================================================
5 i7 j& t0 }% |: F【程序46
+ w4 O; v- p# h& ^( Z. A题目:宏#define命令练习(1)
( U6 i# Y" k0 u" r8 B% l7 M+ Z1.程序分析: 3 j4 K% s& V6 G' v6 |8 ^% H
2.程序源代码: 7 c. L: F9 z/ ]
#include "stdio.h" ; \( ^" t' l' [/ q$ Y  e# k! K" W6 i
#define TRUE 1 ; @/ j4 S8 u7 e+ F
#define FALSE 0
0 Z0 H8 E$ o* K) p; \% X#define SQ(x) (x)*(x)
. S8 Q& w7 M2 ivoid main() ! z( U& ^" z* C, N; \" G
{
% ~5 o( ^5 X% j. Tint num;
' x4 p5 `5 [1 g$ T( T4 ~- r6 wint again=1;
3 B% r7 L4 W- Z' Rprintf("\40: Program will stop if input value less than 50.\n");
/ T) t$ R) c$ Zwhile(again)
. E4 |, H, a" I: j" b( i& e# [5 v{ * u  F* L7 _. t2 e) }
printf("\40lease input number==>"); 2 v8 a) t$ f+ l3 N  r3 |
scanf("%d",&num);
( w( b- t& e  f' G+ h5 F, cprintf("\40:The square for this number is %d \n",SQ(num));
7 ~* p  x( l! L* t; t7 r3 g, ], `if(num>=50) / y8 N2 A7 L" K
again=TRUE; & |9 T* v4 }& d. S# T
else / b3 u( S; v7 i. Y3 K) |! N, s
again=FALSE; , u' O1 s& {. R  v+ |3 _& w& o( R$ |
}
' p( R. ]  O; L/ c8 n# H/ K& w; M. \}
$ X2 k/ E+ s# w8 a==============================================================
# m4 K5 d; l6 |! b& N1 ?4 K7 L【程序47
  I9 T  g; j- z0 a$ A  y题目:宏#define命令练习(2) 8 j: _: r  \, |+ K; q" |* L
1.程序分析: / v% }2 u2 ]7 h" n$ ?
2.程序源代码: - F: {; ?! c3 @- }8 `; o3 A* R
#include "stdio.h"
6 T/ }7 `! D* m& _5 a#define exchange(a,b) { \ /*宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上"\"*/
9 |! @7 g+ J; c: u, V9 tint t;\ 0 f7 }9 b% d% S3 n3 D9 @
t=a;\ " u5 E. T$ O/ o- g
a=b;\ - c2 e# ~- ?4 [8 {
b=t;\
  O$ i9 z8 ~/ T% T: v) M} " w" ^. p! e3 V0 _; S' {
void main(void)
  g$ |9 o5 R8 Y/ P% g! O{ 7 u# z: l" }% j' f) V/ K+ O4 ~
int x=10; 9 W! j* g  ^4 e% `
int y=20; 4 r6 h" q6 m6 ?6 x/ B' C& I
printf("x=%d; y=%d\n",x,y); : @& Y+ H) ?8 U5 V2 R5 p
exchange(x,y); ) U% h7 C# w3 `; c) n
printf("x=%d; y=%d\n",x,y); 8 ~2 y1 T" g+ M2 \
}
; I/ b. ~6 y2 `, e, P& ?==============================================================
" O) Z2 p; U0 C9 o  t【程序48: q2 K& W0 h- \) c1 W7 w4 }
题目:宏#define命令练习(3)
0 m, ?- K6 f) j& z1.程序分析:
& I  k% L" g( U2 q, A2.程序源代码:
3 R* ]8 v" V' j8 G3 h9 p  K#define LAG >
1 y/ i) m  R2 p$ P  u#define SMA < & d. R' z3 w  q$ |" f; `
#define EQ ==
+ Q' W, b) Q( y5 ?#include "stdio.h"
% i2 k( d) f! O( J& N& Qvoid main()
- _- z6 Z9 T: P- y/ W5 d. P0 O6 E{ int i=10;
/ f7 Y, ^( ^& I- Z' F- H" jint j=20;
3 g7 n7 j: B; j! hif(i LAG j) 5 a1 H9 \8 P# Y  N# Z2 m1 G
printf("\40: %d larger than %d \n",i,j);
3 D8 A* B5 \' u6 Y; E& celse if(i EQ j)
; |: f% o3 [) N: L- m; u! tprintf("\40: %d equal to %d \n",i,j); : R6 D# ^  W% |& F
else if(i SMA j)
3 p: K3 w0 T. Y- j, i) Wprintf("\40:%d smaller than %d \n",i,j); , r+ v" S' t% s- U4 U- Y
else
( v+ M( t7 S8 Y# Z4 V( v9 _+ Xprintf("\40: No such value.\n");
' O3 \8 M9 y1 Q: G: k. Y} % t6 h4 j. a% U+ _+ T
============================================================== 8 j% l" _# o- d" {+ e
3 `, s& q& }3 C; y2 l. ]' B7 ~! G
分享到:  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 17:47 , Processed in 0.058552 second(s), 32 queries , Gzip On.

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

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

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