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

C语言算法38-48

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
【程序38
3 ^2 q: E3 q' v, b4 f题目:求一个3*3矩阵对角线元素之和
4 n  D8 X# h) H; N1.程序分析:利用双重for循环控制输入二维数组,再将a累加后输出。8 ^3 t6 u0 o! O7 D: j" b, W
2.程序源代码:5 d8 x5 y# d) q7 d8 r  L
main()
4 J; H. |) p- X7 a4 h! F+ R{
! h( c& D7 V3 c9 Cfloat a[3][3],sum=0;; c+ R0 m! S! x4 Y9 w
int i,j;
+ U, X3 C  b4 P8 a" tprintf("please input rectangle element:\n");
) e$ X& Q6 t. F" s3 K1 tfor(i=0;i<3;i++)
- z+ [; h! h& ?5 R for(j=0;j<3;j++)1 T) U% a& f# j( q, L$ |3 ~
 scanf("%f",&a[j]);
4 b8 q2 Y+ z3 {$ i$ |: Z; C! afor(i=0;i<3;i++); h0 _" `8 Z9 E; t6 g
 sum=sum+a;6 r5 G0 W5 Q0 J+ P( z
printf("duijiaoxian he is %6.2f",sum);
! z9 B0 }2 k! W# F}( p: r6 j. {# n, @& O0 K5 a
==============================================================
2 C6 @# Y4 |/ ~5 w7 U/ i6 P0 r【程序393 @, b  Y5 b$ \
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
/ c6 N, n. K$ X& \+ E! b; W+ K1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后
1 K8 L8 D# O/ i7 l8 Y     此元素之后的数,依次后移一个位置。 0 B( ^7 {. @) Y' e9 F
2.程序源代码:  C. T' ?6 ^5 `+ o5 I8 @
main()* h& [0 I9 U- z* n2 i& E
{8 |+ q0 d8 f+ B# Y8 \
int a[11]={1,4,6,9,13,16,19,28,40,100};, G6 M- v5 g$ a# K
int temp1,temp2,number,end,i,j;
* S5 k! z. D: e* ^0 z) ~# M9 s# iprintf("original array is:\n");/ q" N7 |( ~: H9 |( \8 C( e
for(i=0;i<10;i++)
2 u& j: p0 E5 G" }$ {. z/ S printf("%5d",a);
/ N& k/ O( s3 Y, i2 X4 iprintf("\n");
* b. z( j  s( W. c1 A' w; u8 [printf("insert a new number:");
) S  X- }! h3 bscanf("%d",&number);! r0 [$ }- j0 B: t+ g! d3 X! |
end=a[9];
5 ~( X+ W) V0 H% K3 zif(number>end)
1 g/ V8 G- ]# U2 U3 ?) r  W1 b a[10]=number;
9 A( X, @+ D. \7 p; U& O1 Delse
7 d; ?0 M  R- x" O6 V {for(i=0;i<10;i++)
( m- L5 Q$ c" }9 d' s. f  { if(a>number)& t/ y" s  A7 ^5 M. p9 g
   {temp1=a;' Y( Y0 k: T" [& W
    a=number;
1 O/ S  p- }1 @) Y: b4 z   for(j=i+1;j<11;j++)
. O9 J. O- y6 H5 D" z" {0 T   {temp2=a[j];
* b( D4 ^- d% X# I- u    a[j]=temp1;
( p& i5 C- ?0 R+ Q1 f; F( ?    temp1=temp2;! I8 e0 H& ?1 g4 T+ [1 X; Z8 R
   }
  u& H0 }% F/ G+ D( P   break;/ @" V# a4 u- p- U8 a8 B
   }* f6 p; H# W' }* l* x
  }( t) q* C! w/ N0 X1 T- ]
}
* l6 L4 y# ]+ Xfor(i=0;i<11;i++)1 h% q4 m1 j' c8 b# u" C
 printf("%6d",a);
& [( J0 L: l% J: `}
: |% [6 G! \; M% b8 H==============================================================
' x' N, K) M5 L1 Q. y【程序40
, F4 m( B/ A' a# I4 ?: E( g题目:将一个数组逆序输出。
- u( t! K8 p& ~0 ^: ?9 W1.程序分析:用第一个与最后一个交换。4 i3 w1 }# J3 \$ u
2.程序源代码:" c7 C. ^) j9 ^$ M
#define N 5
# `0 l" E' _4 u  G1 J* _$ Pmain()
" V* P; b# j% n% l0 q{ int a[N]={9,6,5,4,1},i,temp;4 K$ s) B+ W$ }0 R( v$ K
 printf("\n original array:\n");; a; |7 \, s- A# d
 for(i=0;i printf("%4d",a);
) Y( ~) v8 p6 R3 N for(i=0;i {temp=a;
$ z# r* k- Z; v$ Q4 c; P( t  a=a[N-i-1];
( b! E4 M: `/ u9 y8 h* ^0 V  a[N-i-1]=temp;
2 W% @6 Z. O* C( w2 F" `. Y }4 m* d+ P" |: B/ i0 a
printf("\n sorted array:\n");
9 t1 g$ b7 Y% h3 e3 b# o: z- q& wfor(i=0;i printf("%4d",a);  j& h/ q' g8 T0 W3 }5 i( O) J
}
【程序41信盈达嵌入式企鹅一一起呜呜吧久零纪要
# K' |! g/ a, _9 O- ?题目:学习static定义静态变量的用法
2 C; }( s' [: g& f/ ^1.程序分析:
" P! N" n1 B* _+ g% V# K. c2.程序源代码:
0 O9 G+ g$ a4 G+ z( {) b#include "stdio.h"
, ?* _. Y& i8 p: AvaRFunc() " g( \: b6 C; w/ d* X! \
{
& _8 u  u' n. K0 M# j" Cint var=0; # H' `  Y7 f, F" @
static int static_var=0;
. T. P, Y  }+ c% r% b: {printf("\40:var equal %d \n",var); 5 U" V/ p1 ~, H; K5 c! G( @: c
printf("\40:static var equal %d \n",static_var);
: {0 x* k- p/ C% b1 t& qprintf("\n");
% _* h, B+ D# f2 r  I0 D8 v. ?% |var++;
% o0 ~& E; y! ^( C* e* G) sstatic_var++; - Z8 u; j# A: O2 }/ [
} ( x; B! }. s. f
void main() % J' f* ?# ], h) f; @% @( C
{int i; - i) ~) ^6 P" C, Q3 f
for(i=0;i<3;i++)
' d2 W* A. M( a7 n* d2 lvarfunc();
) \# C& V, {$ [5 E  ?3 a. J}
/ L; i5 o$ n9 J==============================================================
8 Q8 g0 ]  i; @/ A1 w【程序42+ S4 Q: C1 I3 a2 F# r* T/ @
题目:学习使用auto定义变量的用法   y1 j1 X* l1 s& P; B9 P
1.程序分析:
7 [! Z3 c$ r, `7 K) V0 T. U& Z2.程序源代码:
  x8 U+ n$ c2 h: A" o#include "stdio.h" % ]0 `0 W! u, B, U( O
main()
8 b# R% a7 ~9 c% [% L{int i,num;
% r% B/ v3 y/ K+ @6 Dnum=2; + I  \4 T7 @. `7 d
for (i=0;i<3;i++)
4 k0 [& S- U  S{ printf("\40: The num equal %d \n",num);
: t% R+ ^( e; o# X# `. Knum++;
# r0 O6 h: b6 P0 [( N{ 1 t! ]" w. I! O8 r6 L9 e& |, \0 \) K
auto int num=1; 1 P* J# u7 E0 V8 z: a
printf("\40: The internal block num equal %d \n",num);
. T- Z& S& n/ R9 A" Lnum++;
; I0 ]( D: a! Z! K( b9 r}
0 {5 j& G9 @, }: s# t* z} 0 S  @7 i6 v. }8 B( ^$ s. u
}
# \- f- V, i, [2 G( q' B) B7 y============================================================== # t: P+ s; K' s& }8 h
【程序43. Q* f1 O! ~7 }: Q
题目:学习使用static的另一用法。 0 \2 \. x$ V0 j$ J- \, p' w
1.程序分析:
9 F) _8 o$ s+ X" V7 i9 d2.程序源代码:
5 v5 \  F& e6 I#include "stdio.h"
3 n% V8 G5 J9 d- a7 m. D2 {main() 0 F+ J, n( q0 j5 i7 g# O/ |
{
6 J, [6 i8 G& ^+ C9 W, h7 Eint i,num; # C8 ?& G  Y0 g$ `
num=2; 6 E3 @. G' p& ^( s! X, w
for(i=0;i<3;i++)
$ G' t- r! T8 H* ~% a* s{ ) \4 V8 _; K# _/ w% B! ?
printf("\40: The num equal %d \n",num);
* i9 r( c1 q0 W& C# Wnum++;
" I) M( m# B+ X! C{ * X/ t( |+ C4 r2 w. h
static int num=1; 7 i" Y) L: a' B$ f6 _# N5 ^2 r* d
printf("\40:The internal block num equal %d\n",num);
( i( x. j4 u0 }4 S' H9 Enum++;
* N# N0 ~+ B3 A+ b4 o/ u} # O8 H3 L8 L5 D# K$ s
} 8 F4 U) L: w$ J! U' K
} 9 M6 l* C: b0 z2 [, Q1 |, c
============================================================== 9 C1 K$ V. Q2 p
【程序44
! e, T( f( P' P题目:学习使用external的用法。
" ?% j% X4 m: C" _6 k1.程序分析:
- {. ?; V) i5 g2.程序源代码:
. w- u; Q* g6 g) b7 Y0 I; C5 M- j#include "stdio.h"
* u/ s7 I: }$ U8 P1 _& |int a,b,c;
& ]9 ^: z1 j- S9 [void add()
  n$ Q" W+ V# W" d  v) k- H{ int a;
% x. v) k/ p, a' e2 A) wa=3;   q) h4 X/ h4 l# M. @0 q
c=a+b;
) a  O* y# H! t}
+ x2 R; E: v! }2 v( Y8 v9 xvoid main() 2 g1 A( B# |; ?, ~) `$ g
{ a=b=4; % b; J" M! A. C, h5 K& X
add();
9 C8 w+ e0 [3 F. I2 J: B2 t6 Fprintf("The value of c is equal to %d\n",c);
& y; a1 u+ `/ f6 k}
. k0 @. }7 C  c$ X, I9 @1 y6 U============================================================== $ c6 @$ b: i  Y0 u( S- }/ }
【程序450 S) @4 z$ w* i# n
题目:学习使用register定义变量的方法。 5 a% V& R- }3 r" Y: b/ T
1.程序分析:
- \8 i% c" n/ H/ T+ \& t6 {2.程序源代码:
! K* x  y0 Q# l. R  E& Z/ Hvoid main() 5 _2 w+ b, ~! k: X' S
{ ! e, A4 W/ o6 r
register int i;
" S: ]9 C- ^: S7 o+ j/ {int tmp=0; 2 I! p; S; z9 F" p& B( a! G  j& s
for(i=1;i<=100;i++)
9 e* {5 B) `3 X6 Qtmp+=i; 3 w1 T, i4 N8 r& Z" a  G
printf("The sum is %d\n",tmp); , @9 H' i+ f- S1 @7 F$ Y' q
}
- S) o/ Q3 l5 q0 H  x& }& a: ?4 A==============================================================
+ q, J& b( Q0 J% a【程序46
* M  Q' X. W- I4 J0 c, B; _+ P/ b3 r题目:宏#define命令练习(1) ) i( w& Q* y3 u$ [
1.程序分析: $ t3 g* P( @, y+ k
2.程序源代码: ; R9 o8 N; u1 L
#include "stdio.h"
5 q, H0 R: M+ T$ \#define TRUE 1 # h# C9 k5 M: d# V
#define FALSE 0
* a: E& L) g1 g+ F8 J: U! A7 d#define SQ(x) (x)*(x) / Q; x- N: i' z: ^9 _% }
void main() ) q0 s* B1 F9 B! u6 A0 P  l5 u2 k5 ~
{
/ O& I, j( m# ]/ U6 }9 J4 c$ i4 Wint num; ' t& i8 i9 Y1 P* l9 W% C
int again=1; * z$ K4 x5 k6 p
printf("\40: Program will stop if input value less than 50.\n");
& p2 l0 t- ~; J$ `* qwhile(again)
+ u& Y9 u: C+ n- P. D{ 2 D# ~# j$ m3 u/ [/ C3 }# y
printf("\40lease input number==>");
% ?& f! q3 R& n1 m, j* K' j  ^7 cscanf("%d",&num);
; z# G2 G% x, M: e7 ^printf("\40:The square for this number is %d \n",SQ(num)); & C/ }' X! r, x/ W' @0 ]: o' A
if(num>=50)
* M1 m3 \8 s( R9 H6 |2 o3 i* sagain=TRUE; 5 I$ A5 h& F3 C. V/ ]+ k& q
else ( o. V+ E/ z* p! s0 m8 D
again=FALSE; : T! C* R& k" l0 ~: s
}
& q! g, C" ^1 X/ N} & f2 k& [6 w' S
==============================================================
+ F0 I$ r/ x2 v; I$ O8 l1 Z【程序47" a0 k6 M- h6 \3 W- j& Q9 C
题目:宏#define命令练习(2)
6 D  U/ [: [/ R* e1.程序分析:
7 x( P+ W4 s; F2 H% s7 o0 L2.程序源代码: 8 F: e. g# C. D: Y0 t
#include "stdio.h"
' H: q6 R5 `( E  e. J#define exchange(a,b) { \ /*宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上"\"*/ 5 k9 t- ~5 G' `
int t;\ 1 k. P9 }' W/ S" _9 _
t=a;\ " Z* o0 {* t& B; k3 R: ^
a=b;\
$ x' ?: ~$ O% r8 _! Jb=t;\ * C) C1 N- n# p" A* s
}
. D2 |$ C- P' Q# k: U8 f  M! Q* Bvoid main(void)
% c' o4 `/ O  ?& w9 a7 q4 B" x{
& I# ]9 E: U. P( \( E% gint x=10;
8 z( H2 ?$ ^* n1 b8 Tint y=20; + K. R, ?$ n& A9 ]
printf("x=%d; y=%d\n",x,y); / O$ k! i8 w( u) k4 E: b
exchange(x,y);
  o- N' t1 s# e/ u& Fprintf("x=%d; y=%d\n",x,y);
/ p  Q1 D/ W6 W} : P7 R- X  N9 ?
============================================================== ! u8 G* ]' ~, n* W, l
【程序48" `  K' f- o- [6 U, I" ]- L3 h
题目:宏#define命令练习(3) ( o% D3 S+ o6 e
1.程序分析: ( F7 w; j* }2 J
2.程序源代码: 1 l: ?- G) \! z% c" P% d
#define LAG > 2 }+ Z" g" o' C7 b* U$ }4 d
#define SMA < / R; M+ C3 E, u' ]% E
#define EQ == 0 V% `3 w$ e  I# K
#include "stdio.h"
8 T: I! h6 I) t3 a% e9 Z  Avoid main() + r5 Y- N; E9 f7 {* w/ o
{ int i=10;
1 O5 l5 N) [- m1 d0 mint j=20;
  [) _; ^3 e# E) r  R1 X; Uif(i LAG j)
. \& T1 X& h" H. B/ [3 P! x0 Oprintf("\40: %d larger than %d \n",i,j);
8 p2 m8 \# q9 |) d5 Telse if(i EQ j)
8 E. X/ m5 F: T- K' \3 B# yprintf("\40: %d equal to %d \n",i,j);
  o* t5 `" x) ~  d# `2 eelse if(i SMA j)
- ^9 |& n& I' D9 yprintf("\40:%d smaller than %d \n",i,j);
( w$ x; Z7 x8 G1 U% T3 velse " f9 g2 g+ }- H+ B" @
printf("\40: No such value.\n"); ( K$ i, h0 H+ q) ~; s
} ' f- H- S9 d+ p3 V1 _
==============================================================
" Y  C& |% v, o; m4 _8 l% C1 p& }
5 V7 u/ h9 p3 {2 J

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-14 05:53 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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