找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

C语言算法38-48

[复制链接]

114

主题

136

帖子

1000

积分

四级会员(40)

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

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

EDA365欢迎您!

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

x
【程序38
% F/ `( R! V- f9 \# D题目:求一个3*3矩阵对角线元素之和 . I3 h( e7 {# u+ X
1.程序分析:利用双重for循环控制输入二维数组,再将a累加后输出。. b  B% q- b3 A
2.程序源代码:
! G. A5 Z* [3 R9 f! x2 R1 L1 Dmain(): R6 \2 z3 ~' V. y7 [; N% o' S4 W
{
1 m( j5 ]( {9 I0 [0 ffloat a[3][3],sum=0;, v8 ~3 h" R) Y9 v8 W/ c
int i,j;. p, c% J4 r! ?8 w
printf("please input rectangle element:\n");8 ?! `; S' F) C" E: @$ e9 Y
for(i=0;i<3;i++)
! g" c/ Z$ k/ ?1 T0 K! ]& u* A; C for(j=0;j<3;j++)$ e( k3 _4 T3 Z5 g( b+ o1 M
 scanf("%f",&a[j]);6 Z: b3 a$ q0 F5 Y  U* `: Z
for(i=0;i<3;i++)
; r. Z- Q2 N- g, U# M sum=sum+a;) p- w1 ]6 W9 O
printf("duijiaoxian he is %6.2f",sum);
" c6 ^( h/ Q7 ?! p4 x}: o( n- t& Z: D) ~, K) _
==============================================================! n  \4 v  T" V
【程序39
  I! R, d/ D0 X3 w& h题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。' u3 N3 M1 j+ ?# A# E) X
1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后! x# V. p5 O& \9 i) a, g4 l
     此元素之后的数,依次后移一个位置。
) ^4 g& n4 V+ v6 K, u2.程序源代码:1 j7 Z8 q3 z+ k+ `
main()) ~2 J) F! v8 p# _& [) g8 Z
{0 v5 r) B, ^( R0 v* \' V2 R
int a[11]={1,4,6,9,13,16,19,28,40,100};$ M+ q2 s$ J) n4 i' b
int temp1,temp2,number,end,i,j;' W( n- a( B: x8 x* e
printf("original array is:\n");
9 m7 L$ V# ^- Vfor(i=0;i<10;i++)
* P5 \& J0 m' v7 h3 i, B# v printf("%5d",a);& T1 L6 P5 ~& A7 H* E! M
printf("\n");
$ z, M0 V7 B8 G$ k7 Xprintf("insert a new number:");
  g- D, t: P* k$ R0 z2 @scanf("%d",&number);0 _2 c! M9 ~# ~6 C
end=a[9];% \9 ]3 M7 Y+ k* D. {
if(number>end)" e) `9 f4 J3 g' C. D
 a[10]=number;
1 @2 k4 V3 ]+ a0 Eelse2 x- u. N; G( g  j9 r
 {for(i=0;i<10;i++)
, Q7 v5 u$ t6 N) Z: C! O  { if(a>number)6 [, F3 V5 U7 b
   {temp1=a;
% |, i1 J  U& N; a+ c4 g% O; D% s& {    a=number;
8 b$ {# ~. y2 G3 J7 [: n   for(j=i+1;j<11;j++)
" K* G8 _9 n1 {; z   {temp2=a[j];
9 P3 h, w8 v. C' O$ s: @; e    a[j]=temp1;7 W* M- W* L' o) y
    temp1=temp2;
6 a. m& b* B  P$ A! y3 W. A   }
! c' q2 a( C0 H% E+ |% r2 U9 i   break;( ?* }% _' x4 d3 U9 h
   }) Y, t4 Y. g) q7 E1 ?) p! X8 Z. H
  }
- B: v' L. S  U0 q}
8 [5 }, q% _* \" ?0 sfor(i=0;i<11;i++)
% n8 Q4 s5 ]- J* n$ o, _ printf("%6d",a);: j: ^3 l; M) U* a" {  r
}* ^0 T. m( I, r
==============================================================
4 Z: P8 @) Q9 r- E& g【程序40
+ l" h% j; Y+ M3 f: g题目:将一个数组逆序输出。0 \& _6 h# h2 t' N
1.程序分析:用第一个与最后一个交换。$ F& U+ o% y5 J4 \! W" h7 R% v
2.程序源代码:
6 P/ `: u$ W  W# O8 F* q#define N 5
5 J4 a  i9 s' lmain()
! ?- v  o! `/ x  U. @6 ^( H{ int a[N]={9,6,5,4,1},i,temp;
) \. N( c+ {) y6 s* k printf("\n original array:\n");0 m, m" j  C& f; v
 for(i=0;i printf("%4d",a);5 q" r! K6 _* r! V5 ]
 for(i=0;i {temp=a;  n7 L/ |9 o+ @  {6 M
  a=a[N-i-1];
4 Q: w" J4 l& `6 F5 o  a[N-i-1]=temp;" _& p5 ?5 D6 o0 c
 }6 o$ z- h) ]' W1 A; R7 _
printf("\n sorted array:\n");
+ `4 j7 e. R6 d# c: ffor(i=0;i printf("%4d",a);
1 b; ^% H! u9 d; n3 v; f7 [+ t8 J}
【程序41信盈达嵌入式企鹅一一起呜呜吧久零纪要 , g& o1 t6 p. g/ |
题目:学习static定义静态变量的用法
4 v* t8 b5 o4 ^( q* g1.程序分析: 1 T3 ~- [7 F( k9 L: z' ~2 T: E
2.程序源代码: ( e4 w/ C8 Y4 c% a6 z
#include "stdio.h"
/ I! V/ x% g/ ~3 w5 Hvarfunc() 9 Z" C( w6 O, M4 O" L2 Q
{ 6 k- N" u" E* B, E+ E0 G1 [
int var=0;
  |/ X# W/ u. Y: a4 T+ }static int static_var=0;
' ]6 u; E% \' fprintf("\40:var equal %d \n",var);
0 d, Y- Z+ }, uprintf("\40:static var equal %d \n",static_var); 5 k0 f! y6 @6 `' O7 H, ^
printf("\n"); - d" @% {7 ]( A( @  @- n
var++;
) j5 R, U6 m% bstatic_var++;
. i$ ?" m$ K( x}
9 \: L# }, [$ S: h1 ]; w8 yvoid main() ' g- L4 ?3 ?7 w/ M
{int i; 5 x, N- q0 ?1 D( U1 c
for(i=0;i<3;i++)
$ k# b8 P3 H5 S8 kvarfunc();
$ s# @7 {, t9 h" G, p8 o}
7 p9 S* H# Y0 i. [3 l& }==============================================================
; J9 v4 ~" ~& z1 Y【程序427 {7 p. E# a6 c* L/ P$ \4 d1 H
题目:学习使用auto定义变量的用法 5 D) y. B+ i% @- K" l3 s
1.程序分析: ! _1 o3 _7 P4 ^$ u' M
2.程序源代码: % Q1 a' c3 {+ c( _
#include "stdio.h" ' Z+ G0 z6 t4 a/ [
main()
* D5 P+ n5 I2 g- {{int i,num;
3 f' p% `9 p# W) D% tnum=2; . n) }/ X  c5 F. F) Q' K
for (i=0;i<3;i++) 8 X7 q# o+ ], J  Q& y
{ printf("\40: The num equal %d \n",num);
- J6 |2 F4 u4 l# ^num++;
+ K; d1 }, @" @" j{
3 S% U/ l2 j" F& oauto int num=1;
0 n9 Y; N5 i9 Q: |' f/ Jprintf("\40: The internal block num equal %d \n",num); & R' _6 Y/ P/ P' R. A& v0 F' @
num++;
, M4 }* N6 C2 m) u# k% r} $ h: l% c7 w1 E; _
}
+ L1 ?4 u, D) I9 A! v}
& t$ y, g# U! _. T6 B  ?============================================================== ) r/ s: K- B& E3 I8 R7 J9 Q( x
【程序43
- t! X* q! |# Y# F) E题目:学习使用static的另一用法。
3 A& x! P  n( a, U1.程序分析:
* C% f$ c2 Q* c2.程序源代码:
8 Z7 M6 v* s) m) C; T1 e#include "stdio.h" % g+ \% w  J/ H7 G
main() ( V$ w- y# k8 A$ c
{
4 W$ w0 u1 _! P8 r6 J5 y$ Dint i,num;
6 R* F* Y4 B+ a9 Z# t& Qnum=2; + L( M2 h' M3 {, `
for(i=0;i<3;i++)
' k. V6 L* T, X* r{ / W% ?! ?8 s+ m' |
printf("\40: The num equal %d \n",num); 5 ?" C. O" m4 ]$ w+ h/ i1 m
num++;
& U5 S* {+ L  p1 |{
# h1 S' m8 V7 t6 e6 Jstatic int num=1;
" u0 I5 _& l( iprintf("\40:The internal block num equal %d\n",num); ( r8 }& ^# i# w7 |
num++;
3 |8 H  N2 p# p  E7 r/ ^9 _5 F} + E1 E# J0 Y4 L2 S
} ! z3 M4 E. p% p3 w
} : L9 K# H# ?, c; _% p
==============================================================
: a% J$ s' C% U% C- _$ s. l【程序44
, g! L" q  l6 S- e( f0 Q题目:学习使用external的用法。 # L; H" Y3 J7 b/ g
1.程序分析:
- ?. H( u' D( T7 n6 l0 o" M. ~" Q2.程序源代码: 9 t& y. l7 Y: [  i6 j. n
#include "stdio.h" - u2 U! s  Q: f0 V
int a,b,c; 0 n8 n+ q) a5 Y4 Y& ^6 p, X
void add() ( d' T, z7 i, `
{ int a;
' C- y4 x0 ~2 q* a5 ?' d! sa=3;
0 H4 w8 Y% J/ d4 |. hc=a+b; 4 Z5 B' P# k9 B4 C" _3 U
} , e! z2 A! O0 l% ^6 l
void main() * x& R! [; u: m6 O
{ a=b=4; 0 @+ j! }/ T. _
add();
* [$ W! B7 N2 B! Xprintf("The value of c is equal to %d\n",c); 6 F) {7 Z  j6 m, M& t
}
. C' A% l  v3 `8 N, @4 D2 u==============================================================
# W' v6 i" B0 s【程序451 C' q, i6 I  x  p3 F* ?, i. S3 M
题目:学习使用register定义变量的方法。
% I2 m. X5 _: y, o. a2 I1.程序分析:
) q$ R( O( ~; I: V2 p8 L0 l2.程序源代码: 0 ?5 ]( u* U/ [9 U; p, Y+ D
void main() 7 v4 W, {/ Y( ^2 d- a+ L
{ 6 ?: ?+ V; w3 q' Z* N  Y
register int i; ( }; Z0 C9 z, Z* s; _
int tmp=0;
) N  s4 `) t/ ]* {6 Efor(i=1;i<=100;i++)
" D  `# {% G. X$ f& }% R0 C1 ^2 Ftmp+=i; 7 j' J6 U+ z' w3 \% \
printf("The sum is %d\n",tmp); 8 I; v8 z+ p+ m5 z: N
}
7 B% y8 M" Y" ]( L==============================================================
( ?' q" N; N- M* ^; M【程序46
2 s$ L; P. h* \3 S: x6 ^题目:宏#define命令练习(1)
* S8 _  I- [0 k2 @0 N0 Q& P3 S1.程序分析: 0 h  [. n9 O* @8 ^$ O/ r  I
2.程序源代码:
3 V" j; G3 w- K& r4 Q0 `4 [#include "stdio.h" 4 X. w4 u6 T' P/ D/ X
#define TRUE 1
4 U0 y: M( {& @. k- N+ n#define FALSE 0 $ {! W  j% U1 Y. e" W! P6 e
#define SQ(x) (x)*(x) ! w: K1 V, B1 M9 _; q* U1 l
void main()
2 G; M* ^  q* {* q& V9 G, J* b{ ) {; {3 {8 u* U% o3 K
int num; + J% m2 {, E! p; |: a5 J" b
int again=1; 4 q$ w$ n1 d5 b% B4 w+ L9 u
printf("\40: Program will stop if input value less than 50.\n"); . K: V- y5 K. r! r
while(again) ( C/ M' ?! e! V6 A) r% i
{
! v3 m. n0 [5 a: X6 z2 \printf("\40lease input number==>"); 7 r1 u, h/ X; {2 I( |9 }6 t
scanf("%d",&num); 7 K4 J7 S! Q0 `3 z
printf("\40:The square for this number is %d \n",SQ(num));
9 f: i2 v6 ^3 Q9 q  a* A! z- @if(num>=50)
: ?" K9 R  P; t8 U3 L* j- w+ sagain=TRUE; 0 R/ \* M7 X; q% N, E9 x: A$ L
else
3 t/ A( B& c2 v* @2 Oagain=FALSE; 8 P6 G% [/ d  g5 i
}
% W/ Q4 w) U& f* c8 Y: {+ q}
. i% m3 z- }# G' w============================================================== & D" ]# h4 @0 a4 m
【程序47
/ p) I% a7 A; m7 d5 n题目:宏#define命令练习(2)
9 i( J$ X+ J6 t  I1.程序分析: & s* S1 u) b9 H: n! I/ H0 Q
2.程序源代码:
$ T: |7 h$ R' d! p* T#include "stdio.h"
6 O1 Q1 r: H- W3 q, u5 b* |- M#define exchange(a,b) { \ /*宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上"\"*/ 0 n8 J- v& d! q6 ?
int t;\
6 ?, p. o3 V! }, }$ Ht=a;\
! Y6 B. m3 y) G; y1 B4 ~* n- _a=b;\ " m! }: A2 ]; ^5 w
b=t;\ 3 ]& o  `) J, R, |9 d$ ]
}
* H' d& P2 h9 @, Fvoid main(void)
9 E# _2 U7 u0 _6 ?! ~  \1 N" a- F9 C( \{
& q% K, V' [' z+ q: d7 I" Qint x=10; - N+ c& N% `2 l5 b$ S) A
int y=20; & j2 w8 |" e% K2 ]& _  i
printf("x=%d; y=%d\n",x,y);
/ k$ a, W7 Z0 T9 I5 `exchange(x,y);
' E& O" W& B3 I+ q* mprintf("x=%d; y=%d\n",x,y); # [. w  [: h( D& c
}
& B5 v' l' x2 Z* z============================================================== 5 s( r$ }  i5 T$ a4 q
【程序487 ?3 R8 D# B" a
题目:宏#define命令练习(3) 1 y- {6 L  G. U
1.程序分析: 6 C' ^/ O; b+ O) x
2.程序源代码:
+ q3 k! i2 R  R2 e#define LAG >
8 A( |& U2 n9 Z' f1 `#define SMA < / j3 ?. A9 B5 \/ M
#define EQ ==
, n( E4 }+ a  e#include "stdio.h"
, B2 @# R9 n% vvoid main()
' q  r; j& s& W4 `; o" Q; p- Q{ int i=10; 9 \. Z+ R1 }2 B& m) c) R; m$ O
int j=20; ; Q+ b- a0 ~) ^( [3 r( M/ m
if(i LAG j) $ n- n* R: u) @: B  d# o
printf("\40: %d larger than %d \n",i,j); & k) e7 |4 v" ~9 v
else if(i EQ j) : h5 _, L# ]' n; ?
printf("\40: %d equal to %d \n",i,j); 7 ^" ]' H0 ~& x# D+ @  t+ L" |
else if(i SMA j)
. i2 E. L6 G- k+ G' u; Jprintf("\40:%d smaller than %d \n",i,j);
& E" d, v- q* q6 Q: Selse % @- y3 c7 C" d, G; Z# l
printf("\40: No such value.\n");
3 t9 {& H2 t! s* M! y# W. {}
# n/ V. p, u  z( Y& ^( ^6 _============================================================== 1 A) }) T! x# E; x* T& d- F

  K( X: R! r0 i" [& _
分享到:  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 18:03 , Processed in 0.060546 second(s), 32 queries , Gzip On.

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

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

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