找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

C语言算法38-48

[复制链接]

114

主题

136

帖子

1000

积分

四级会员(40)

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

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

EDA365欢迎您!

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

x
【程序38! }9 p9 N3 C* k0 m7 m- x$ J5 I
题目:求一个3*3矩阵对角线元素之和
( B2 j: B) R  F, m  V- ~+ s2 M6 p1.程序分析:利用双重for循环控制输入二维数组,再将a累加后输出。
) \8 R+ z7 C$ R. Y1 G2.程序源代码:
3 o; h& L! e# f" z. q6 K, Emain()
/ {6 f" a  `: \+ A3 h{7 w* d- d" ~' K3 y+ @+ J/ V+ i! l
float a[3][3],sum=0;% e/ A  E2 Q, a
int i,j;( B. j( Y" K6 r" {  |
printf("please input rectangle element:\n");
" E+ R# X  e3 [5 |- I& H2 hfor(i=0;i<3;i++)
* G5 s. y. ], N, I: g8 A for(j=0;j<3;j++)/ A2 B& G2 R8 a3 R! s
 scanf("%f",&a[j]);& A+ o: k0 z" ]. G! S
for(i=0;i<3;i++)6 e% J/ X* \% i1 \+ M  ~* @' F4 C
 sum=sum+a;
( f8 Q0 M) c5 O$ \, mprintf("duijiaoxian he is %6.2f",sum);8 b  c) X4 `: w" O
}
/ C. u$ ~4 C! i1 Y( g% @' G- }. L" y==============================================================
. V, U: I' U: y: y【程序39: E/ Q# Z( f) H- v9 v% Y
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
' u# Q7 B: Y( W/ t5 z0 l4 N1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后9 O4 M6 ]! O) [! X
     此元素之后的数,依次后移一个位置。 - B2 ]1 K; C1 C( }
2.程序源代码:
% w0 u& ~/ F+ C. G$ smain()
; Z( i& f6 m. d% B- A) M{9 a9 [& w5 g. E5 B
int a[11]={1,4,6,9,13,16,19,28,40,100};5 l9 F; d1 ~# w9 i8 i& }! o
int temp1,temp2,number,end,i,j;
! Y/ j( r- o2 a" [& \# ]  Cprintf("original array is:\n");1 f0 P, [+ J& Q) @  A5 k9 v* O" u
for(i=0;i<10;i++)8 @/ b( r5 z$ F1 n: Y" A  R
 printf("%5d",a);
! C9 z& v* m; K0 z9 c1 Sprintf("\n");9 ]0 n4 O. t0 A
printf("insert a new number:");: W, D! n) @9 a1 v
scanf("%d",&number);
/ {5 ~: m$ A/ }2 Q, G1 z! \end=a[9];2 u- v' u  v5 J; C. Y% q
if(number>end)
# b* q2 }7 H7 v; G9 r4 Z a[10]=number;
6 i" v6 {. y3 i% uelse  f: K! [% \" ]% O
 {for(i=0;i<10;i++)6 ^" D% h: J4 W: f/ M7 h
  { if(a>number)
: m+ @3 y- }- ^# h1 I/ W" ~. i   {temp1=a;
. k3 C; |% f& N1 j    a=number;' z! M' X: ?. [, P; ^& J
   for(j=i+1;j<11;j++)9 Q2 M5 S+ t  k9 G0 a
   {temp2=a[j];
3 u+ U( I6 U: B- M    a[j]=temp1;0 f* q5 I, Z  U  p0 R8 Y' _
    temp1=temp2;  g" S! a- ^' ~, @* O/ v; g. p
   }0 X7 N  k0 |$ l7 Q! u
   break;2 ~. p3 l! k  b6 J2 F
   }
6 D  Z) z, R( S7 a  }! ]1 _8 b. E% F, {9 d. y0 {1 Z
}
4 G+ n6 C: a% \- h4 Ifor(i=0;i<11;i++)
( |5 w* A7 d# ^9 g printf("%6d",a);! t- X6 b+ M0 N8 A! F
}5 w6 C* `2 g* m) |1 s0 P+ S' c
==============================================================. N6 T% l& q4 Q
【程序40. i  @) x: q. e, M+ `4 w0 W9 s
题目:将一个数组逆序输出。$ U8 H6 l+ s" W: B
1.程序分析:用第一个与最后一个交换。* b' p$ n, \6 A
2.程序源代码:7 e2 u9 J8 r" ^, V+ b- @% l0 }. N
#define N 5! G8 S( I' G. [/ a
main()
) `# `9 ~8 t% {: ~, N{ int a[N]={9,6,5,4,1},i,temp;
; \) b0 f; t5 p$ C, z8 I( c printf("\n original array:\n");
  G* G& E' z1 H9 I. O for(i=0;i printf("%4d",a);; r: P4 Q7 W6 `
 for(i=0;i {temp=a;
% r: [* @8 @& ]  a=a[N-i-1];5 @1 n, |. E# T
  a[N-i-1]=temp;- f; Z- a9 `% X' c7 b" }
 }
, d0 R1 f# `  k1 ?/ fprintf("\n sorted array:\n");
: e* v+ _, V/ L" c; I4 Ffor(i=0;i printf("%4d",a);1 T7 Z( _$ W" E3 `* Y) d  g' y* l
}
【程序41信盈达嵌入式企鹅一一起呜呜吧久零纪要
8 L& a" g8 `6 A( p# ~题目:学习static定义静态变量的用法 * X  Y0 @. A& i
1.程序分析: & R! {$ l+ T! H' U& X
2.程序源代码: 1 K9 z4 Y( ]. y1 h& F, N7 x% s
#include "stdio.h" , g+ V- k& f* C  U8 B8 E% X) E2 I
varfunc()
9 G# l% t$ y5 w7 C2 {1 V+ E5 _{
3 G0 w& l# D" Xint var=0;
9 G* i8 c# h' C6 M. s7 mstatic int static_var=0; % e" N) S+ l5 U2 C
printf("\40:var equal %d \n",var); % D8 t0 Y+ l$ z, |" X7 _- Q: V
printf("\40:static var equal %d \n",static_var); $ |; {7 Z) D( B' l4 o5 ~% K* X
printf("\n");
8 x4 }, ?. d, U0 k# E% Lvar++; ! ^& a+ M: W( ~4 W( Q( I
static_var++;
# i. Z, }, b" p2 [0 A- O} % K8 Z3 `# L" Q( i7 [
void main() 2 {  [' S% V( Q9 A5 V
{int i; - J; O5 `5 P( z* [7 ?0 |) k: p
for(i=0;i<3;i++)
. L! c( h4 E# d$ t/ h. I0 fvarfunc();
# c  J( ?, x& f* o" Y  C} 1 |: n. ~6 K. P$ |" E
============================================================== + Z; M& g9 i9 s4 I/ x3 c3 M3 @
【程序42
( k9 J( W; y; g- u, H题目:学习使用auto定义变量的用法 + T) b1 U# S" }9 {5 o
1.程序分析:
9 C; O, u% w( I& c2.程序源代码: ; d- G, Q# @* }. Z1 y
#include "stdio.h"
9 n' g1 G& i0 E0 vmain() % M6 K  ^4 ]: z# P! `  Z
{int i,num;
' r3 \( }0 A0 U/ `  U( H  Bnum=2;
/ }; A0 X& B0 C( Y9 q. m9 afor (i=0;i<3;i++)
- w8 a( a, W& W4 r* s+ N2 \{ printf("\40: The num equal %d \n",num); % e& F* W. x, F9 E- a# ?2 [
num++; 3 b7 \! t5 t2 T9 I6 }; u7 \$ C
{
5 R- Y) i0 N+ `auto int num=1; 1 G; g2 l$ {( i$ A' r
printf("\40: The internal block num equal %d \n",num); 1 M7 q0 G: T: ]9 f2 ?' p
num++; 7 g- o% h: Q$ C) k7 Q6 y" T# y
}
$ N, n4 W0 s. u5 o4 T4 L+ e} " ?& B" P; Y* h3 J. z; S% c: Z
}
4 w. {. ]7 x3 n" q1 B============================================================== ) M7 D. Z( D# e
【程序43
5 V2 v7 }4 E' J' W" A5 L! k题目:学习使用static的另一用法。
6 U$ e0 t% i2 O- q" B, r1.程序分析: * @+ m4 t5 R7 I, ?* U# X
2.程序源代码:
* f+ A6 W+ C: S, ~' C% i: A7 T#include "stdio.h" 0 y% x" V- q: W: W. p* d) L+ u2 \
main()
1 R: p3 j! A* M' i) H- O6 s5 o{
+ V6 ^3 s2 g/ t" }; Hint i,num; 8 ~  e/ r( Y/ [% j
num=2; 1 u! i, B) h9 z) G9 m  Q2 {" l
for(i=0;i<3;i++) 0 ~: j, m/ `4 _2 ?
{
# {0 [; x: M  n8 g6 l3 ]printf("\40: The num equal %d \n",num); 1 P5 x# T5 \" O- ]% Y% S+ Q
num++; % v; w$ w$ r6 ?( S* C
{ 7 Q* |5 @' G* B* h7 a
static int num=1; # X3 i" D, P7 {9 N/ \" J& U
printf("\40:The internal block num equal %d\n",num); . G; H' P  f5 N" ^. K( x# ^# t
num++;
6 W7 h4 V$ x8 w2 T* j8 S: C} & N. O4 s. G- o/ s8 z+ N: t
}
# @! }% M# q& q4 b) I" L' b5 A} 3 I& W. S  A* u- P/ N9 s, D# p
============================================================== . M# \- m7 W7 g+ i2 {( @
【程序448 {5 v4 v/ a& R  s. y# O2 p
题目:学习使用external的用法。 5 G( O- l8 F$ N5 @% w: \
1.程序分析: ' w  _( E* h7 H' y0 m
2.程序源代码:
! ~1 P1 D( O9 ]! O, t' ?# }3 z#include "stdio.h"
/ W; h" |# M" `+ u9 xint a,b,c;   d( r6 K; U4 m0 O, e
void add() 9 V' S2 |5 B' V+ t1 t2 o
{ int a; . C7 _* I$ a* k" G2 {1 Z
a=3; * d2 P4 _, v( H1 V7 m
c=a+b;
4 m+ |  w' I; C) G8 w: c( B}
4 ~! R4 O% H- e/ c: d/ Ovoid main() 0 g. ]( m" D: s' J6 n% }
{ a=b=4;
7 m5 _! y, O% E9 r6 P) H3 Fadd(); ; ?2 A& k& q* E
printf("The value of c is equal to %d\n",c); ' c( ], f9 g. d! [  a, n0 f
}
" f  o% v4 S6 Q$ l$ t7 v, A" L============================================================== - h& }' Q6 ^( ~8 [5 S
【程序45
+ ]7 Z. F' C+ s& t& q0 T" o% ^. H, ^题目:学习使用register定义变量的方法。
5 v0 s( K: l3 X8 E0 e8 }8 y9 }1.程序分析: 2 c4 ^" `4 ~9 ]* o& @" ?- n! k+ }9 C
2.程序源代码:
0 X9 ?3 P! {0 Vvoid main()
$ }* |! h0 k, S/ _; D: [{ 7 z% C9 M9 g! P' w/ p
register int i; 5 P: S5 {3 j  }( W7 \
int tmp=0;
4 Y# I1 V, q) u$ N# W: kfor(i=1;i<=100;i++)
% V; e" y5 E$ @7 d$ V- {8 W3 c" E$ o: Mtmp+=i;
9 s1 `7 N9 H$ a& b, b$ ]printf("The sum is %d\n",tmp);
: h3 W; M# Q, B) c4 V9 c2 J}
& ~$ d: ~* s( Z) `  ^) L! j============================================================== % Q5 J, j: b4 Z. Q" T
【程序46
- F' Y- ^% Q! I6 J1 ?题目:宏#define命令练习(1)
2 g$ f) B8 i6 p  R3 \, ?2 j; g! r1.程序分析: . i% G0 a+ W( ]; M! }
2.程序源代码:
: ?# c5 ?' y: D& h1 D% y#include "stdio.h" / \' B& Z7 e6 h
#define TRUE 1 ) d6 g  \5 a0 Z3 }5 O6 L9 C2 {, ?
#define FALSE 0 . ^0 }: K: p$ R! I3 N8 B
#define SQ(x) (x)*(x)
+ H" ]% z% d9 S' ivoid main()
9 b; [5 J3 j; Z' g{
* i8 v! R: v; p, T4 b1 qint num; 0 {) a5 R5 L4 \3 g, r
int again=1; ) v  D4 E, E* U) `
printf("\40: Program will stop if input value less than 50.\n");
8 Q2 W4 N1 K5 T; O% E' u! y: A+ Uwhile(again) ' \4 d9 R- F  r. {, w0 p9 H
{ 4 Q$ X2 L5 a8 L
printf("\40lease input number==>"); 8 |1 d% X0 d5 Y! ?3 u' j
scanf("%d",&num);
5 c7 H6 x! X- p7 T% A& F0 s1 Pprintf("\40:The square for this number is %d \n",SQ(num)); + Q3 q1 v  f/ l. Q8 I) E5 u/ D: o
if(num>=50) 1 h0 }' f4 x( {$ q1 G
again=TRUE; ) C9 c1 s2 r0 r  e! x1 U3 \
else
, O' Y! I0 Z% K" h' a* sagain=FALSE; ) A, Y! P$ |! G0 v! n% t
} + ^$ S& E6 S" p
} 7 }  P- x: Q; h* c6 W. j) ^& d
============================================================== $ j1 u- D) b# R) {1 ~) K9 ^
【程序47: S8 P' x# ?$ j) y/ r
题目:宏#define命令练习(2) / k* M8 z7 \$ {
1.程序分析: 8 Y/ n7 A- I/ s; Y) E
2.程序源代码: ' t9 R7 ?% @# d6 r3 Z& P
#include "stdio.h" % \2 D# s8 O$ @. q2 G/ `
#define exchange(a,b) { \ /*宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上"\"*/
* Y) ^$ Y# v# w  l6 ]int t;\
9 n9 C- h' |9 e5 v' v- u3 G6 zt=a;\
' q# E7 \" @( n6 |& O# d( i! Ya=b;\ " J0 z& j* a* x" _
b=t;\ ) H( c% Q. M" _1 U# d- m
} * G; E  f- J- a/ @
void main(void) 4 x% X3 ?' G5 j
{
' k3 V, I( k( q: L, }* a" G" Sint x=10;
4 z# g- {# U+ p8 zint y=20;
2 l2 X, W1 B3 Y4 L; xprintf("x=%d; y=%d\n",x,y);
2 o: ~& Y% j" G. n% Y2 e. }/ o- ~, U! wexchange(x,y);
0 E3 K# y3 A% i* B: X* Xprintf("x=%d; y=%d\n",x,y);
0 Z: G' g1 j+ q3 |  _}
$ ]" E: O& c" B==============================================================
8 H# P5 B  x3 Y% X7 d" E5 i$ n/ [【程序48
' A, I! W- y! Y7 G- \0 a题目:宏#define命令练习(3)
# w8 _# X* S# G8 E: Y1.程序分析: - [: s9 h9 Y- s+ r5 ~
2.程序源代码:
+ F/ M5 E+ h& y+ t6 y#define LAG >
0 I9 s. U" ]' J# k+ W6 w9 p# B& |#define SMA <
1 l* A9 H$ L" Q. y#define EQ ==
/ m7 H3 E) |* ~. r$ I; Y9 l#include "stdio.h" " `& K! N; q+ s" x: J
void main() % e# _2 d; k2 Q" A0 I) v
{ int i=10; , L' U( x9 T1 I2 O; L  A
int j=20;
# |: |9 o+ a& `% Gif(i LAG j)
8 i# M3 I$ ]3 ~8 ?5 C% z0 pprintf("\40: %d larger than %d \n",i,j); , G/ Q3 H! V. e0 ]) q0 {
else if(i EQ j)
2 F" X, g2 v4 M: l% P2 b& Q2 Vprintf("\40: %d equal to %d \n",i,j);
0 R6 W# Q- q+ M+ s) C) t8 Telse if(i SMA j) " G( F2 X/ W, }; O& R
printf("\40:%d smaller than %d \n",i,j);
- v! W  O- O/ I' jelse
  K4 l; R0 |, Qprintf("\40: No such value.\n"); 8 @2 f8 s8 o) o
}
# l1 X. A4 }' b1 O, K==============================================================
; v* U9 H; {5 B" {4 Q
& E7 ~( `8 G8 G  l' u; k% q
分享到:  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 15:04 , Processed in 0.060235 second(s), 31 queries , Gzip On.

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

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

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