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

C语言算法38-48

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
【程序383 N7 p# A9 ~- h3 z0 o) \+ y
题目:求一个3*3矩阵对角线元素之和 3 W7 Z* _8 w8 s* l! U- J; t; k
1.程序分析:利用双重for循环控制输入二维数组,再将a累加后输出。1 }7 s# d1 @4 V8 @
2.程序源代码:& p# L5 A) t6 S* C: y. j
main()) J: {. k5 y/ O
{
$ Q& t; B/ g0 H; w# l+ F6 t8 Y8 A+ ufloat a[3][3],sum=0;% Q+ Y4 z2 L( k0 W! \, z% B- I
int i,j;
$ m- J; t4 ?7 \; i- zprintf("please input rectangle element:\n");4 @2 x8 F$ J, ]" R8 G
for(i=0;i<3;i++)# G" q+ D, H! g0 z
 for(j=0;j<3;j++)  p  h+ [4 t' u" S& P3 {' d  Z4 U
 scanf("%f",&a[j]);& h# S/ S6 j8 o) F8 {
for(i=0;i<3;i++)
; w$ j. R' b, ]4 R/ K! j: ~) ^ sum=sum+a;  \, H- G7 D& c+ A* r: `! q6 J
printf("duijiaoxian he is %6.2f",sum);
4 _+ S8 m( M. k$ z( k+ Y0 P6 q7 Y}
7 K& d& K" E% m9 p3 A==============================================================; j, h% V) a) M/ c8 Z* K
【程序391 ^2 B* \9 D: S6 z- n4 s) k) T
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。. n: s, G6 ~# U( y
1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后
' C+ V( r% Z5 }+ p9 }; ~     此元素之后的数,依次后移一个位置。 * F# U" g% ~% \: a% {
2.程序源代码:& }  K3 L, _5 t* V6 a
main()0 |& g) k1 ?) m3 f/ D
{: T' B0 T8 X# p
int a[11]={1,4,6,9,13,16,19,28,40,100};' Y, Y) J) M7 q
int temp1,temp2,number,end,i,j;, U6 _; u8 _: Y, |& G+ P
printf("original array is:\n");
" z" n! f0 k" F. t! ]+ l+ pfor(i=0;i<10;i++)$ p: q, w1 f) ]+ W* c
 printf("%5d",a);& k+ M0 j9 K* H3 E# g) b
printf("\n");  I( ]9 C+ a6 v0 q3 J" f! p+ X
printf("insert a new number:");% W6 n9 }' C4 w# n3 x7 F7 p# i0 x7 K$ W2 `
scanf("%d",&number);7 d8 R/ ~( N$ G! a6 D5 Q9 K" n
end=a[9];
* r8 L& M! O' v9 R$ H8 b2 hif(number>end)+ J2 j# \& F: _3 L# |$ r
 a[10]=number;0 M; ]* Z% {' d( q! j
else
6 t: `; q, @6 u3 S5 E {for(i=0;i<10;i++)# J0 ^- x& ]2 \8 m5 t3 U' @( O' h$ w
  { if(a>number)
8 |7 D% S3 w! e1 a   {temp1=a;
0 L/ y8 G7 E3 ]# d/ Z- e    a=number;
9 {& o! N: u4 V6 y3 D! P   for(j=i+1;j<11;j++)5 [; ]# J1 Q* ]2 B: E7 O4 Y
   {temp2=a[j];. N, L1 x2 ~2 [* \( ^
    a[j]=temp1;
, T) y8 @- q  v. V    temp1=temp2;
& z' O; _0 {# U' }, _! f3 S7 I   }
, S3 [5 [& D7 ~5 Q   break;5 H4 Q! \6 p+ b* q
   }& d5 u& @/ i5 J
  }. p5 _3 i( @1 h7 H! F' W
}
) L9 U$ Z1 m) i, l# tfor(i=0;i<11;i++)  R! @- M" e: A
 printf("%6d",a);# \( [- Y+ _6 f
}# p7 @$ k* D# l* O7 L. u
==============================================================
+ W! y+ x" C0 W  W0 H4 d! [3 [% u【程序403 e! d; \& w- h2 B; f% g- ?
题目:将一个数组逆序输出。
$ O" g$ J1 l9 q: ]3 A1.程序分析:用第一个与最后一个交换。0 d3 p% a0 g2 v) x3 d5 @: W# U1 r
2.程序源代码:
* l" ?: J2 K5 `0 d#define N 52 ~* k( R* C9 w" o7 ]& {0 l% b
main(): @* t; B9 e6 E5 [1 _
{ int a[N]={9,6,5,4,1},i,temp;
6 f% P' X, p& I( m3 Q printf("\n original array:\n");
& U$ ~5 G" s$ e$ z+ s. a for(i=0;i printf("%4d",a);  w/ U# J0 f: i3 M/ a$ z
 for(i=0;i {temp=a;
7 {: K2 l( E/ U. f) c  a=a[N-i-1];' b, w% S7 V3 Z/ }
  a[N-i-1]=temp;( C2 y/ e: C9 y  a$ W( N0 _8 `
 }- f8 h. r6 U/ v
printf("\n sorted array:\n");
& H& X# Y8 c, qfor(i=0;i printf("%4d",a);
! o7 A6 ]. ~' G6 b}
【程序41信盈达嵌入式企鹅一一起呜呜吧久零纪要 ' T5 D* a- f/ c& o8 h4 I3 n+ H. d
题目:学习static定义静态变量的用法
) }1 L! }, t' T' {1.程序分析: ' ?) m+ v+ c. F2 K& {: _5 e# p' M& v  ^
2.程序源代码: 4 p+ a  c: t3 Y0 ]8 f* I
#include "stdio.h" - G) w; S+ z. P$ n& e5 \
vaRFunc()
' W' B) F  Z/ e{
* [7 p4 v3 v- P" I- Sint var=0; # [; o: t/ S' m! J! y
static int static_var=0;
) N& \9 X' H0 n3 Hprintf("\40:var equal %d \n",var);
% f% }, F+ F2 p$ o8 D4 v$ Aprintf("\40:static var equal %d \n",static_var);
, I% _* n- d& h& ?" g& c2 V. l: G) Qprintf("\n"); 5 t7 U4 i" O# C7 M+ A+ Y0 E, p
var++; / @- X# a( k- f% K
static_var++; % {. _$ s! e3 R  _
}
% g& x) B3 [8 f, Jvoid main()
& ]6 K$ q$ w3 k0 H6 n{int i;
% e. o! s: X; t2 ]' a' O  N7 `for(i=0;i<3;i++) 4 e$ N, i' y3 x' Y
varfunc();
# k! N3 S4 _2 A' r} / g, h* ^# v: x( N$ T
============================================================== 4 [" _9 _* e. J  v$ u1 q  D
【程序42
' E; j% J  C  F' z2 w' \$ ~7 E题目:学习使用auto定义变量的用法
- v/ Z: z5 U5 S( A3 _1.程序分析: ( q0 r# P( A- g
2.程序源代码:
6 W  T: M* b  k+ I+ K#include "stdio.h"
! K/ `! S, M( G- `3 A% q- e" zmain()
) v) J6 C& U5 W0 ^/ W8 I  `) {{int i,num;
, I# e$ H0 R! e0 }2 dnum=2;
; B/ @3 e: e+ H8 K& qfor (i=0;i<3;i++) ) j) c8 l) b  i3 N
{ printf("\40: The num equal %d \n",num);
3 b+ n, K/ ~9 Y7 {- Inum++; ! j6 ~8 ?4 e. n( J
{ & i. T6 R5 G4 Z9 x
auto int num=1;
2 P5 r& B- c# E% Sprintf("\40: The internal block num equal %d \n",num);
  L4 Z1 L! H$ W% A/ Lnum++; 6 j  o+ _4 y4 q4 w; u
} " t# s. f4 q' P4 v7 K$ ~* s
}
; W- e+ A8 D' ?: ^% t}
0 G' {4 n3 e3 R% ^3 T, f- d" d' n============================================================== 9 H/ g' ?$ c: d# F1 }5 s
【程序43
" }9 r9 [4 P+ K2 l题目:学习使用static的另一用法。 , E9 q  a: m' r
1.程序分析:
1 g. O0 Q' P9 a; q; J8 m+ i2.程序源代码: & r, B( K5 O( j- {! n6 f
#include "stdio.h" : B4 w4 n* @( X- R2 F, x( u" [
main() ; ?- e) Q" K' s6 R2 {
{ & M/ l# {9 j! }
int i,num;
8 k" c; H) ^2 ~, Xnum=2; + z0 J, w: k2 R& _
for(i=0;i<3;i++) # w& b( E6 i) ?2 O$ l; W4 u) c
{
+ }% \  z3 u9 j* z, vprintf("\40: The num equal %d \n",num);
8 i* i, |+ d7 s  q( p$ vnum++;
9 o! ?: D7 r, J! r( i" f* c{ 2 {6 i% i8 f2 q9 C7 s$ K6 U  ?
static int num=1;
3 }6 |1 A7 O' O4 j3 U! e, @printf("\40:The internal block num equal %d\n",num);
/ m  v- v+ Z$ N" M/ H; o* d8 Enum++; : v. N+ z# n" o! Y
} 4 l$ u* j- m/ L( y
} . G7 b, X0 o. }. j  N& \
}
- ?, G& [- h- W" m==============================================================
! a7 U( l( s1 H6 L+ _【程序44
/ l8 n) P; W) M9 D9 i$ ?6 e8 j% k( d0 |题目:学习使用external的用法。 2 I  V+ T# ]+ ]
1.程序分析: - Y/ S, P* n* q3 h& f
2.程序源代码: ) v9 G7 `3 x" u3 p6 J$ K
#include "stdio.h" $ Z; [6 m2 v4 U. P, G: C9 C
int a,b,c; 2 N) J, S: ]& D$ y+ E
void add() + l! d9 E$ U7 F: q
{ int a;
+ y& f' ]. W0 ~# c9 g# P+ S: ea=3;   \  M; `- I5 u! [
c=a+b;
( y9 ]% K. l# Q& x* `) m1 i1 L8 }} 0 C6 c; ^4 x0 R' L
void main()
/ ~+ m7 c+ t$ A{ a=b=4;
+ n7 |3 \$ |7 u- [+ N* V5 aadd(); + U# P4 N* X+ q, E" t6 S
printf("The value of c is equal to %d\n",c);
" E% W, {4 u9 T" x5 t2 r6 H}
- s1 ~2 P8 D0 T* s==============================================================
( u. }/ T. I6 N" F- y( s【程序45( M4 O4 A- u; q9 r& @  A% i+ v; Q+ N
题目:学习使用register定义变量的方法。
6 @; F9 W7 D. a' X( ^: O1.程序分析: - e2 A8 O5 n! u! s, y: q7 a
2.程序源代码: 3 k/ p8 G6 N, \9 o
void main() , \; t. F0 g( I* c5 W- R8 R
{ 7 K5 d1 Y/ p2 K0 b% U5 s+ W) S5 ?; {
register int i; 8 q! R" d* s8 [
int tmp=0; . k/ V: t( p& j: D
for(i=1;i<=100;i++)
3 m1 A( Q- B1 B2 F- Mtmp+=i; 9 M+ g2 E, z) V
printf("The sum is %d\n",tmp); 2 n6 Y, Z6 }- }8 C* f
}
* t5 q- ~' E8 s! T. u  ?4 r==============================================================
5 C  z0 v& x# e" {9 o2 |【程序465 p7 r7 f' c  A8 b6 o3 @2 o
题目:宏#define命令练习(1) ; [" p- \7 k6 ~6 {6 u; W/ d+ S
1.程序分析:
+ j% I& E7 R8 h9 ]( K" J, i2.程序源代码:
- H! b& L4 f9 k- X: V. Q#include "stdio.h" 4 X4 v; ]* A. K7 `
#define TRUE 1 # f8 o+ z) z2 D( }. H8 R
#define FALSE 0 & c7 H1 N- u' M6 k, i/ {! W
#define SQ(x) (x)*(x)
5 K# r8 L3 M4 B# m( kvoid main()
/ k1 y0 K: B5 b: k{ 9 A3 m) v& N" u6 W6 i% z
int num;
2 Q& q7 o4 Y0 [# uint again=1; , p' P. w: G" a0 d+ J( m( F# b( o
printf("\40: Program will stop if input value less than 50.\n"); 8 ^9 J, ?4 U/ @: `
while(again) ( X' r8 ~* p2 v1 n" w1 s5 C
{ ; h' o+ |1 `* i6 q. B/ Y9 y
printf("\40lease input number==>");
7 L" n8 t: a! ^* V) Wscanf("%d",&num);
; P0 T" x9 q& u* {printf("\40:The square for this number is %d \n",SQ(num));
% A& t  F  J8 F# _4 [# F6 b1 P2 U( D$ G7 Zif(num>=50) $ g2 m- W: a; H7 ~$ x0 r* G( `% r
again=TRUE;
: z9 ~) v; Y, }- `5 L) oelse
0 H  i! t2 ~& Hagain=FALSE; $ E$ Y  y$ L7 |" J0 ]
}
" c1 d, G- c  e2 J2 {5 l}
% Z. p; f% Z. T0 @% P==============================================================
/ D- e! ?. S. {1 l( Y" g' A# _【程序47' {. ^- t4 X. y! l
题目:宏#define命令练习(2)
9 ^  j9 A, W7 o! S: J0 ~1.程序分析:
1 M' F  }6 v) j# ?4 t6 T; T2 k& v2.程序源代码:
+ f4 Z3 y! ?& _+ h#include "stdio.h" * [7 f1 Q" k' \# C# o
#define exchange(a,b) { \ /*宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上"\"*/ # G6 H( f! J1 L* G- c: [
int t;\
3 `/ L# f8 W2 c5 ]t=a;\
7 C4 e1 h! G% v7 _a=b;\ 6 J* @+ D: m& e* \+ ^% ~# w
b=t;\ 1 L, q/ S! o0 o* e2 J6 W
}
% l. o, t  X5 F6 }. x7 k/ I! nvoid main(void) 6 r- [; k6 x: K7 b* B; K% N
{ 7 l2 i/ P6 q! n1 i# Z" {; \; p  G
int x=10; 7 R% f% {0 m" y% ~4 c6 ?$ @
int y=20; . ^+ V$ s+ x; H! j2 w+ J3 C- K8 [
printf("x=%d; y=%d\n",x,y);
0 y* ^6 Q5 p( [4 kexchange(x,y); ) K* j- {. j% I  J: H+ E- B
printf("x=%d; y=%d\n",x,y);
, `+ H& l5 r6 z" G9 \, [: t/ T} 1 x  Q! x3 c2 u% T  m7 P" e4 x
============================================================== 9 V5 _; W9 W3 U8 S1 w. V$ h, x: Z& V6 u
【程序48
5 H/ Y# d% M/ B2 H题目:宏#define命令练习(3)
: k& |$ C% ^5 o) j% M% D0 f1.程序分析:
3 B: V  Q' y! N- k$ o9 S2.程序源代码: 4 t- R7 Z/ d+ B& Q9 U4 X
#define LAG >
" v' J/ Z. A( g# A: K# w. r. ~, T& y* Y#define SMA <
# e1 G. O7 V) ^* Y) q* ~3 u( ?1 g+ J#define EQ == ! l" [, o7 e) }% R# @
#include "stdio.h"
, b: n: p+ G3 |+ C1 ?5 @void main()
7 M3 \4 h4 v5 r: O: s{ int i=10;
. B/ k% Z6 I1 R6 Oint j=20;
6 n6 U. c! M8 v3 Lif(i LAG j)
2 G  Q- \1 K$ \" C6 S% X+ s; }& gprintf("\40: %d larger than %d \n",i,j); ) V* S" w5 A9 e
else if(i EQ j) - M- L4 h) L3 k( {, j3 @$ q
printf("\40: %d equal to %d \n",i,j); % A0 U( X  }( _+ A8 ?/ y
else if(i SMA j)
" L2 c2 g+ e8 m3 V) Wprintf("\40:%d smaller than %d \n",i,j);
# E+ y' \3 O% z4 C# lelse ) J' a$ V$ c+ i* y% D1 I& @1 {
printf("\40: No such value.\n");
2 s$ v! T6 F/ F& I4 Q" V/ w5 @* |1 [7 [}
5 a3 j- Q+ ~+ E* L==============================================================
1 A/ A$ z' z7 z1 o2 P( n  p! J4 o- N

8 k8 i. N& k, B: n* q

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-19 04:10 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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