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

C语言算法38-48

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
【程序38- b; P6 p6 @% o( j) B
题目:求一个3*3矩阵对角线元素之和 . v7 ^  |3 K8 C6 g; I# D! S
1.程序分析:利用双重for循环控制输入二维数组,再将a累加后输出。7 i% g; \+ H8 y$ z+ u
2.程序源代码:
+ S7 G0 g9 s* Q2 I( `6 Dmain()
5 X) T, ^* o* v1 g! D{
0 a! H4 v* I3 L% I2 a1 u) Mfloat a[3][3],sum=0;! q! R( U0 q' Z$ L0 K: o
int i,j;, @# j, Y& O$ u8 z
printf("please input rectangle element:\n");
* W, d( h1 ]1 \for(i=0;i<3;i++): M; F* V' @4 ~5 _0 A
 for(j=0;j<3;j++)# _- b- e) |: p
 scanf("%f",&a[j]);& {; \# |4 R! T7 @% J6 T- a7 s
for(i=0;i<3;i++)
# ^' B+ z6 x% z  V5 V% w, A4 G4 n sum=sum+a;- {, @8 n: ~1 A& ?5 z+ Y. l
printf("duijiaoxian he is %6.2f",sum);7 C$ ^! x/ n; w" N& D5 p
}
' S9 }( C6 @6 z$ f2 t  T3 i  X+ l" o: g==============================================================
; p+ r4 N3 b6 ?( \  z: _+ V' {【程序39' N- N# ~, ]% v: t5 X
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
  w5 F& v0 ]+ A1 g& O/ F! k1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后
0 J1 F' z0 r; D/ B" f8 c     此元素之后的数,依次后移一个位置。 + K: d) E. M: ?+ r
2.程序源代码:% J* w+ Q# g9 }1 d
main(). ?" h' c* n+ v( U5 A5 Z
{& R+ q9 A9 T  J+ f6 Q
int a[11]={1,4,6,9,13,16,19,28,40,100};
" W, `/ g' w' E- S/ d  @int temp1,temp2,number,end,i,j;
( z' ^6 d0 |8 C  Uprintf("original array is:\n");' G% Q. q* }2 `3 l0 Y5 n* b3 O
for(i=0;i<10;i++), S% t) D$ ^4 w7 z2 U
 printf("%5d",a);- L8 b+ b( N8 `$ \  o0 l5 D/ u% P
printf("\n");8 [, L7 D7 S" K' I0 U4 F4 b
printf("insert a new number:");
& D4 q% A: c( z+ Q0 b! yscanf("%d",&number);
% d( ^- X6 W' [( t- w0 E5 K6 X) Cend=a[9];% C  X+ S6 j+ K* R9 w
if(number>end)
/ Q6 g* g' q) f4 x8 x2 x a[10]=number;
: C6 f6 |5 ^/ p/ n7 {else
) r: F- f9 a4 _9 L4 } {for(i=0;i<10;i++)& ~7 ^# c* _( j! v" ]1 t
  { if(a>number)
3 A6 C2 ~( Z5 u6 G, J( C; b   {temp1=a;
# b; Y: {4 o7 v6 w; o    a=number;
$ F" S' }: Y9 J5 X. Y8 [  _   for(j=i+1;j<11;j++)
  F+ ]& r0 ^2 a8 \   {temp2=a[j];  M6 {  h. V4 M$ C0 d7 ~/ N
    a[j]=temp1;
  [1 a9 d6 j% z    temp1=temp2;
/ c5 E* M- b* E  a6 h( d' h   }7 `! a; a: E& [! \6 r. i8 ]7 i! r
   break;
. q1 w" p0 V) g% t2 W# }   }
" {8 ?3 z9 E/ A; u7 s  }
, ~# n! h/ O; H; _% [}
* f9 \! {6 d0 N7 u9 H6 Ffor(i=0;i<11;i++); O' t+ K+ {% W! i. b
 printf("%6d",a);
! ^: E2 J, N% T1 n) h0 i}2 [# i, a! F( Y3 W$ ~; d
==============================================================
+ P4 W. W4 E* i' F/ a【程序40
2 h$ B3 ?( v; Y0 j1 p题目:将一个数组逆序输出。
2 N) q) v$ [& W3 [! X8 c+ x1.程序分析:用第一个与最后一个交换。
+ C& ~1 E9 c- j4 Z5 |1 @2.程序源代码:
  H8 \4 ?4 d: C' r1 C+ T+ a#define N 5
" Q4 C6 @# v7 s  F) Lmain()+ _3 C' B  s; N
{ int a[N]={9,6,5,4,1},i,temp;/ B1 C  Z4 ?$ A; c9 }! X: p
 printf("\n original array:\n");. `2 E  Z; [% g" a1 m3 A' I
 for(i=0;i printf("%4d",a);' v) h. l" N9 ~, K" E5 _: x+ Z% G
 for(i=0;i {temp=a;3 ]2 \! J) D* k- I: V
  a=a[N-i-1];
& x; t1 _& m  |$ z0 x0 Z  a[N-i-1]=temp;5 g/ N8 |4 D4 J- K8 J' N
 }0 ?: B1 i( Z% I5 O( O" `
printf("\n sorted array:\n");, J1 C& F3 }9 v" J
for(i=0;i printf("%4d",a);6 Y3 i, Z3 k' C, H+ A
}
【程序41信盈达嵌入式企鹅一一起呜呜吧久零纪要 8 {- |* G) r0 Z
题目:学习static定义静态变量的用法 / G* b5 \* ]/ @& V+ s( R
1.程序分析: 9 v! {0 h* d4 t* K, V- W: P
2.程序源代码:
/ [) B& f3 `, i4 ?#include "stdio.h"
4 A4 W1 J8 ~* L1 K, Q1 evaRFunc() ' I3 Q" P* g2 W
{ 1 G3 k0 d/ k  \) ]3 I; n0 B" j
int var=0;
: ~- Z. q1 v4 I7 e7 Y, K  Cstatic int static_var=0; 4 |* w" r' ?4 V5 C
printf("\40:var equal %d \n",var);
/ G+ {* {8 z+ ]4 `printf("\40:static var equal %d \n",static_var); & d3 I# i. v8 u. E4 b- |9 Y
printf("\n");
. B* s5 \0 y+ W6 p  y; ovar++;
2 E% z! x; e" j$ M  v* W( Gstatic_var++; 7 c; u2 m  e' |" }5 _$ w& K( s
}
6 u& g4 S' i5 o" v& n9 v2 Jvoid main()
. l8 m/ z1 k) V6 I9 ~/ l& P{int i; , s: T, c! D) w9 O- B
for(i=0;i<3;i++)
7 s) D: _$ f& P7 P! U0 wvarfunc();
3 w6 e5 _# f% [$ b; c* g}
+ x+ T& j' U7 y! a. L2 N& Q# g; Q============================================================== % R& v2 h% }0 t, k: P* w
【程序42
+ n1 m% F# m% \题目:学习使用auto定义变量的用法
$ Y  A9 g- t8 E$ t$ }# e9 ]1.程序分析:
& K9 ^' O( h5 l  ?" U2.程序源代码: 2 F) f1 h. O2 y5 g
#include "stdio.h"
/ s* X2 O7 X  u$ x0 Y+ e+ ~main() * d- l" F7 S# P$ ?$ S$ t
{int i,num;
9 u) d9 Y# T( cnum=2;
# _' G$ ?( d1 e. M4 Z7 mfor (i=0;i<3;i++)
4 y* L  c; o# S( X0 L( h. [0 h{ printf("\40: The num equal %d \n",num);
7 s0 d, D+ m7 o' |' o, |num++; $ V( D1 F6 f& x$ ]2 N
{
0 j( M5 v' k; @0 K% H4 |4 |auto int num=1;
# L" ]0 k5 H: q* H/ I! k9 c. Z0 S$ eprintf("\40: The internal block num equal %d \n",num);
1 D2 B% x& ^- M6 @- gnum++; . c, ?$ j' `7 ^3 b2 Q
} " L- j! r: y3 ^2 W$ M/ I, u# }
}
, x, x+ q, c3 P: `! L/ t} . A; B* F; t$ u8 B1 T5 _* w
============================================================== 7 Q6 J# x! d7 r# r( z; H+ D
【程序43& |, `$ w, ]' k; T& c. M
题目:学习使用static的另一用法。 . R) [' O# t- ~6 }8 \; ]
1.程序分析:
/ B0 L5 h0 H0 @, e. _3 Z( ~! J+ {2.程序源代码:
/ l3 `3 g5 r; ~+ p#include "stdio.h" # t5 S9 m, z, i
main() ' Q; g& v1 a5 ~
{
/ s% T: g; G  k$ B$ n: p: @int i,num;   S" I: x+ g! x% B7 J4 D2 b0 {
num=2; / n& \7 b+ ^' {4 N' z3 p
for(i=0;i<3;i++) ! _( ]4 |/ z* s  Q% R- ]# [$ I/ f
{ % x3 H: U  ^# }% g
printf("\40: The num equal %d \n",num);
0 \0 C2 u, S3 L. x! m4 w( pnum++;
2 |6 |5 T( ]# _# m% ^{ " Z3 h+ |$ h. a& q# a
static int num=1; ! B+ [8 R0 p4 H# w: y
printf("\40:The internal block num equal %d\n",num);
. W9 @' S9 {: n) v6 r$ z3 anum++;
. R  y6 }3 J' F  G8 S}
( A4 T, s9 t0 o# [} ( N4 x" o% j! y  {0 R/ C* [/ ]8 d
} # |! O/ U, \# H3 U3 g3 o0 i9 j0 e5 {3 ]
==============================================================
) B' Y+ w( Q) V  a# Q! S9 _【程序44
. ?; _8 T: P% w题目:学习使用external的用法。 . e3 Y  c/ M) l: _
1.程序分析:   M7 m9 p" E* `% g
2.程序源代码: ( Z7 c/ A2 P- x1 U2 \  y/ m; E
#include "stdio.h" : q/ }) d4 y, h) v
int a,b,c;
( q( a8 B% @8 d6 f% ^* ]. ovoid add() ) X6 \, X- l4 P) |& W5 `7 u* Q4 v* ?
{ int a;
7 l2 N  u' V9 v- y% F) P6 la=3; ! x! |1 M: t4 {: `& x
c=a+b; ) \" h6 A3 t8 W/ q- n% G
}
$ V& h; r8 d! C/ N$ svoid main() : O* u( p- U, p; k" C- P6 C! ~* v
{ a=b=4;
5 x: H8 x; z( L2 f1 i/ ?add(); * k7 D% `2 v2 h, P8 p3 ~# |# L) X
printf("The value of c is equal to %d\n",c); 3 f& F& X% j4 ^: F' h  P
}
, t" u( h# Q3 a4 }# |9 X==============================================================
/ O" b& }- `8 @& ~- o【程序45
+ L9 y( }4 O$ a  C) {题目:学习使用register定义变量的方法。
- l1 e" f: n+ u. L1.程序分析:   E& w* e. N( T
2.程序源代码:
8 m2 f, Z* |" F+ n0 nvoid main() 1 V' r; y0 _/ S- E+ h& o, o
{ ( M' D& l: C' G# _
register int i;
, r$ n" J3 V0 Z8 _5 L: S+ Qint tmp=0; ) d4 L$ i; M7 k
for(i=1;i<=100;i++) $ f! w# c/ H6 x# }% x
tmp+=i;
* t# @: E, V0 Mprintf("The sum is %d\n",tmp); & ~+ x# o* O' }1 U+ ^: a' e- `
}
) f8 C1 F$ Y+ A; {$ q8 X& X==============================================================
1 l/ o- ~- ^' z1 e【程序466 K7 s& ^5 c% ~
题目:宏#define命令练习(1) 1 E4 o) y/ A/ b' F# d/ b9 U
1.程序分析: 2 o, S- G9 K( ~8 p7 z
2.程序源代码:
- x- P' J2 W; C* S0 J#include "stdio.h" # W  ]) h3 L* f/ I  r% d( q/ }
#define TRUE 1
" H7 N8 `7 R1 k#define FALSE 0
- `5 Y6 r+ L" s" I! p) C#define SQ(x) (x)*(x)
! q5 g2 l: o4 ?7 ?( Qvoid main() 7 I# `+ T9 E2 E1 n7 {  r" K
{
$ ^; e$ ^# [0 y1 B" xint num; 0 n0 z% v4 }/ t  D9 l# S
int again=1;
: d2 t$ X0 b8 C; ]' Nprintf("\40: Program will stop if input value less than 50.\n");
2 b+ Q, d  U# L3 a* a2 \while(again)
- n) g5 B+ B$ _/ a9 }6 o+ `% z{ 0 R& E6 U9 U9 s
printf("\40lease input number==>");
  w* f: S& K) t& {; ]7 L1 B: W8 Zscanf("%d",&num); 0 P. x  k: p1 _; F, e/ @
printf("\40:The square for this number is %d \n",SQ(num));
( e$ g- B+ S! J8 E% kif(num>=50) / C8 A1 n% ~* ~4 L2 B
again=TRUE; * A/ k  ]8 E" x2 U4 ^1 x. }6 r1 S5 l
else 6 Z. u2 R# w' N6 |3 a9 Z
again=FALSE; & g; `0 X' q% G- w% `9 {
} 2 k6 \# l/ [: |
} 4 M# y+ Q. W+ l- ]
==============================================================
  l7 {+ [7 b! J9 U! [; |) r' N【程序477 U- W" z* n" c8 k
题目:宏#define命令练习(2)
# Z/ {$ W. O( B( w1.程序分析:
, p0 z$ Q( i* r% S1 b2.程序源代码:
7 V0 d! L+ u( T* X#include "stdio.h" + u* O' T: m1 l) m0 a8 c
#define exchange(a,b) { \ /*宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上"\"*/ - R" k& u* }+ E1 y; B3 C
int t;\
0 z2 j# K/ X5 k! Y/ }6 o4 L& Xt=a;\ + l- S5 |) G1 F9 S/ l
a=b;\ . p* b5 N1 ?0 V) q" n
b=t;\
# B: b2 \$ n& V. F5 J5 c} : x8 I: a, p) ^  v. A' d
void main(void) 6 N6 {* `: p- h8 E
{
2 O- K2 Z4 a% D  h$ Oint x=10;
' k- ]& Z: U. h/ {5 Nint y=20; 6 k4 \3 S' u% E! D' b8 t) M
printf("x=%d; y=%d\n",x,y); - ^& H% D/ I/ @6 r2 b
exchange(x,y); , a$ N/ z' j' \1 }9 z9 Y8 _# `
printf("x=%d; y=%d\n",x,y); 3 @3 S! E$ ~+ B2 m
} 2 ~1 s; W# {3 o
============================================================== 3 k) S% f  r; `& o1 [: P2 j
【程序48/ \5 L9 r0 r- y2 U( O
题目:宏#define命令练习(3)
; P+ [9 W2 h' Q5 G& D$ _1.程序分析:
  r( P$ ]# Q" j) A9 K7 t4 T2.程序源代码:
) s) Z6 D$ T" W#define LAG >
6 B4 S6 q" y* `8 N" f#define SMA < 0 f' i  I# n2 d* h
#define EQ ==
$ h7 I3 H0 x* Z" K#include "stdio.h"
* j& m# x- }) Kvoid main() 5 b5 {2 y9 c0 `+ y4 b2 }
{ int i=10;
7 b; |% c$ l# M+ I4 N/ Gint j=20;
$ t. b1 s! H, N1 R# gif(i LAG j)
# G8 Y/ G! L! ^" eprintf("\40: %d larger than %d \n",i,j); 0 B5 n7 z1 N$ z& f( t+ [3 A: ^
else if(i EQ j)
3 [  n% O- N$ B( h6 {- J% c2 Cprintf("\40: %d equal to %d \n",i,j); " q: G* \0 r; A6 X4 i8 _; O! n
else if(i SMA j)
" h. b; Z8 I0 zprintf("\40:%d smaller than %d \n",i,j);
3 g7 q4 V: U# felse 7 C% a& ~, N! K
printf("\40: No such value.\n");
0 N( K+ y9 h1 d5 D% w}
+ J, O! \4 X, \' m% y============================================================== , w% u7 N; x$ {" N1 m3 s/ L3 G& l& p
6 t. S" a2 d0 a; P# C+ c+ }& W

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-21 08:06 , Processed in 0.093750 second(s), 23 queries , Gzip On.

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

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

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