找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

C语言算法38-48

[复制链接]

114

主题

136

帖子

1000

积分

四级会员(40)

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

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

EDA365欢迎您!

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

x
【程序38/ q' k% D8 X* }7 |* e9 x/ _
题目:求一个3*3矩阵对角线元素之和
5 v- [4 a+ [6 ]* S- _/ G1.程序分析:利用双重for循环控制输入二维数组,再将a累加后输出。6 y& M, \2 i$ p4 s: ^5 N
2.程序源代码:
9 G1 v1 Y; S% xmain()
3 H) p/ l4 v* o{- L, @& _# M4 ^* B8 |# m% @& c
float a[3][3],sum=0;
) k3 m* C- U+ j0 H& xint i,j;
0 b- q1 P2 U6 B: j" A* iprintf("please input rectangle element:\n");
# @! v/ d+ d3 T, g8 a6 J9 {for(i=0;i<3;i++)
  B9 u# E- e% Z6 a4 _ for(j=0;j<3;j++)# z6 v5 w0 t; l
 scanf("%f",&a[j]);
  D8 T1 }; O6 e3 dfor(i=0;i<3;i++)
3 D+ g! f( S+ t8 f sum=sum+a;
, {; U, F& {4 F" q' I7 jprintf("duijiaoxian he is %6.2f",sum);, Y9 N, v& @2 y- P$ h* o& u7 ~6 I
}
: [9 S& T3 F" C+ o, A==============================================================
' L, k5 h9 R$ T  S【程序397 @* F5 F6 O! m4 D) {8 |
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。  H7 `9 z- p. G: N' B
1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后
3 l& L+ d" `" \. \     此元素之后的数,依次后移一个位置。
! w% z; M6 B& y5 |' r3 h2.程序源代码:
& m9 V( ~( S4 xmain()
5 c' V( e0 q8 Y/ H{7 I; q% E" m% K! l8 T- y
int a[11]={1,4,6,9,13,16,19,28,40,100};
3 v" c0 f' l7 ^- uint temp1,temp2,number,end,i,j;
$ K: c& u1 e9 R' _6 k' s* ?2 L( Xprintf("original array is:\n");
7 }  b" C2 l; E2 O, b8 p" s  H% ifor(i=0;i<10;i++)* W! r" b$ U( O" K
 printf("%5d",a);
" s" Z6 b$ l4 _& Rprintf("\n");
) r2 O+ @/ U  kprintf("insert a new number:");
0 \8 `7 s8 L/ ]' `% D+ pscanf("%d",&number);2 T: {* J3 V$ K% O% F8 _, `  F; E( ~
end=a[9];1 w, ?! {; ^0 v+ B0 ~
if(number>end)
% l. C4 ~7 Y6 w  K# ~5 H a[10]=number;! `5 w- U0 u% P' W; D8 d. z
else
; J# K* O& v3 \. Q' V0 S {for(i=0;i<10;i++)1 A! Q" [  f2 N4 R! s
  { if(a>number): i. [4 \3 ~% m: e: k% t4 i( X4 N
   {temp1=a;
$ A, |0 Z2 h$ Q  |    a=number;
' K' |/ R: j6 Q; r, H/ P   for(j=i+1;j<11;j++)
, E* }% n2 v7 X, {$ h   {temp2=a[j];* Y) V- \5 `1 {* i! s1 ?
    a[j]=temp1;$ W% {/ V2 S' M+ @9 J' e, w+ n
    temp1=temp2;: Z0 p! T0 a, A0 \, X  U9 w" }
   }
  |, L# E& P2 m. ?" j   break;
- a9 A! k$ [, c/ t" R1 ?- t   }
4 T2 B, f) ~& K: U/ J, G0 t  }( w9 `% Q2 U: W4 A: T( \& w
}1 c5 @3 @& V) z* _! ?
for(i=0;i<11;i++)
. {+ ]& R4 F7 z6 {* t1 ` printf("%6d",a);
+ }* W" D: ^7 G. ^- R}
7 U& y3 X6 [! K2 G( j==============================================================6 [9 P, R/ e- \+ C+ ^& j
【程序407 h, f6 r& }$ X6 G
题目:将一个数组逆序输出。
7 x; C7 u: p: {  @1.程序分析:用第一个与最后一个交换。& Y; y7 z6 h/ A
2.程序源代码:; q3 a% H; u' t
#define N 5
. a/ d) y* }5 H# |; _, t3 W* ymain()
2 @, ^3 r! W4 \( ~{ int a[N]={9,6,5,4,1},i,temp;  v( {- E. q  y# N# s
 printf("\n original array:\n");) K5 X% J) T, ?( j6 h$ c. a
 for(i=0;i printf("%4d",a);
! |) p; r$ L6 Q. F# m. S7 H0 h for(i=0;i {temp=a;
1 Q5 r) W8 f; D: T4 I. o  a=a[N-i-1];
  r0 A& j- E+ ]" h  a[N-i-1]=temp;* O% ^& f5 ^  D. X
 }, \7 c1 ~: I$ W- F( P! i# T$ D% K
printf("\n sorted array:\n");
! y5 p: q: O1 c7 A& \" N( ]for(i=0;i printf("%4d",a);7 R$ C7 E& ?6 P6 r/ h% I
}
【程序41信盈达嵌入式企鹅一一起呜呜吧久零纪要 ( U8 m- c9 n/ C' p1 p3 {
题目:学习static定义静态变量的用法 ( o- l' {# z; [! A
1.程序分析: # o0 n: \$ H& {2 g5 \
2.程序源代码:
, K1 d  ?( t0 J6 S#include "stdio.h"
: y: B* M# ^5 P. }' I6 \7 avarfunc() + b$ g7 r1 b! T$ t$ |2 _- y
{
9 m* \9 t' J# y! v3 ~1 a/ R8 rint var=0;
, q- J6 r* }# T' {2 Qstatic int static_var=0; - F- `( u- ]! u$ P7 p8 P/ R. A
printf("\40:var equal %d \n",var);
! {; b5 R0 B  n0 F' Q# K4 Q' P  cprintf("\40:static var equal %d \n",static_var);
' Q: D# Z: t& o( Qprintf("\n"); $ n" \6 `$ U' Q# x% Z8 c  \5 f  R
var++;
1 |9 k3 |8 U; S: zstatic_var++; 4 ^0 }  m' B1 n, x' n
} ; ~. J2 D% i3 ?; A
void main() $ ~- R; ^6 q1 `: h- |6 w" B  a8 F
{int i; - ^* {3 J5 z/ z
for(i=0;i<3;i++) 7 d, T% Q9 ^4 l0 d
varfunc(); 9 y: W% O0 S$ ~% S4 b/ @. |
} : [, _1 ]! z8 Q" u/ ~+ E! _% @
==============================================================
- M: x; K# d7 r4 R【程序42
) _2 y6 m* g$ a; r- ~题目:学习使用auto定义变量的用法
0 W! l& K! ^( P) X# i( o1.程序分析: 4 y; P* _  E# c1 X* T
2.程序源代码: 2 {$ h# A% C: |$ m4 [1 E7 U
#include "stdio.h"
! u3 k. C- K; B9 F; Imain()
% R$ [; k! q6 _/ ^{int i,num;   G# c, b7 U0 D4 y, K
num=2; / x# k1 J  P+ ]+ s% R
for (i=0;i<3;i++) : ~% k" l6 t$ t
{ printf("\40: The num equal %d \n",num);
% g- e) w4 H! Q& u+ f- d% V& s8 qnum++; 6 q$ y4 X4 ~1 L( D7 W* b
{ # ^5 e2 n2 T+ m. [; Z( W
auto int num=1;
) f1 Z0 @* \7 J: j3 gprintf("\40: The internal block num equal %d \n",num);
; t5 ?$ g& K, r1 s" e2 N' _1 B5 jnum++; ! K7 ~  _7 M5 c  z+ i2 J
}
9 U( ~, f* r5 Z1 j7 |' l} ! {9 W8 P$ |. k/ o7 F/ H) B
} $ |( I4 K  k9 L: v. B, P
============================================================== + _6 y# ]7 o) b% T  T6 ?+ m
【程序43
* I& J9 M  s8 M& d6 A# m1 P) D题目:学习使用static的另一用法。 5 Q  V, @, t8 g0 E5 [2 A) h
1.程序分析:
8 B7 K1 z5 N& \4 O2.程序源代码:
# [6 b  \- L) g% ^0 r* T! R#include "stdio.h" / c5 o+ o& g2 y. D, L
main() " k' Z' D& v% p# G
{
' }' b& W# m# t6 aint i,num;
0 f, D2 ^2 K, E7 {  enum=2;
3 m4 L! _+ X( h6 @9 Sfor(i=0;i<3;i++)
; z7 [! v5 g) X9 p2 F3 ^: |{   [) V3 r' o( F) G- T4 \
printf("\40: The num equal %d \n",num);
' r" I0 n7 X# O# v5 ?: P/ C; U( wnum++;
( P) I8 ^+ j( j/ H& k{
. u& G+ u/ g: m9 G0 t5 {static int num=1; / M( U; _. C- j5 T* c  b
printf("\40:The internal block num equal %d\n",num);
0 {0 ?. g% f1 f; O) c! v6 r% ]% anum++;
$ I0 {. ^4 `. F' i4 o& C" J, G- K2 P- w}
8 {; P" X2 P! f/ l" W1 }- d$ s/ X} 7 w7 Z) y( a8 L: {( D
}
6 O( @# }- N" t7 k============================================================== 7 Z1 s" ~3 n% g2 Y, e1 J3 {
【程序44
/ K: ^# A7 i; T0 w8 z6 f3 m! y' ?+ a) R题目:学习使用external的用法。 / l/ Q' t7 h) g/ {  `
1.程序分析:
2 G" L. A5 P: D: j& D6 y1 I2.程序源代码: 4 A3 {' b. d1 K/ w/ i' o
#include "stdio.h" # v3 e3 h7 `8 N( ~( {* T
int a,b,c; # j" |4 j3 d' ?" @" l
void add()
) X& r3 u8 \# j# D9 g( [0 ~9 Y{ int a;
/ z$ U& k$ q! c9 ja=3;
) N9 S* T) s3 R, }- L# Nc=a+b;
$ M' o  @' X9 U: i} / d8 v6 G# m8 Q' v0 P
void main() 9 N# N# y$ p" h9 l
{ a=b=4; ' e) ?- i; W! b+ \) [
add(); ; Y7 g/ f2 q! @3 U( Q# f, Z
printf("The value of c is equal to %d\n",c);
- ?! q% h0 ?- @1 P- k" T. r6 O( H} / h6 B9 i  Z! G, s; H
==============================================================
* k7 q9 u4 p0 j. S% Y: w【程序45  U# s6 g2 D7 v6 C; G
题目:学习使用register定义变量的方法。
+ j( k6 {! M& N1 B/ p1.程序分析:
0 ^' V+ y' K( b# E" m) p2.程序源代码:
( k, v% [6 T& P/ K6 V7 _6 e" C  {void main()
! A4 J+ ~' i0 y, ~! R{
6 h. s. H3 n  O' C, kregister int i;
5 a. }7 v6 |# h0 ?% [int tmp=0;
0 H& Y+ e& x0 o: W- r8 u( Zfor(i=1;i<=100;i++)
- ?1 M+ p2 r/ |tmp+=i;
& e* Z4 ~% [8 B) rprintf("The sum is %d\n",tmp);
8 W! o, k. A- P7 J3 H0 z- O, ^} - x+ ?3 E6 @- n# E
============================================================== ' b& z' ~: J! L5 X9 A0 k+ U
【程序46" v* Z  z$ f1 s3 x6 X! ?4 i
题目:宏#define命令练习(1)
1 K+ M; w) V$ v2 i1 u1.程序分析:
/ q! k7 h' K$ V0 q2.程序源代码:
- x! l. `, E6 p5 T6 k( e9 y! }5 D% E- [#include "stdio.h" ' z9 d% G: ~& [0 T+ o, s) a& j
#define TRUE 1
& Q0 c3 l6 n6 J- @; p6 N#define FALSE 0
0 k+ X0 S8 O# K# G. P#define SQ(x) (x)*(x) : q2 Y9 V3 a, @5 k: o
void main() ; v' x3 a  K% v, A
{
! q  Y$ i. S& Uint num; + B0 p  ]# O. _* o& ?2 x
int again=1; 3 V( e: y8 P$ L0 w
printf("\40: Program will stop if input value less than 50.\n"); 3 H; ?9 Z" k! c+ _
while(again)
% W$ @$ S' S0 T& I$ a; B' L{ & q1 m1 F8 d& P$ z1 S
printf("\40lease input number==>"); / d; d0 e; s* |0 {# L+ k  [
scanf("%d",&num); ; q1 O2 a7 r* d
printf("\40:The square for this number is %d \n",SQ(num)); - J, H8 q- m. l" ^
if(num>=50)
* W# o: I0 s# I# Vagain=TRUE; ( x8 p7 C) o+ V
else 1 x9 x1 e* p9 d8 Z3 C! p  ~
again=FALSE;
4 L& E' K4 e7 `6 U  ^& l} 1 D3 K( J# K$ y1 \" ]/ b
} 2 z- c! p9 M2 k0 \+ _% R4 S" O2 E
==============================================================
/ l3 ?" c& Y0 V! m, a8 ^; ~# U【程序47
% S: v0 m" p1 j# ]题目:宏#define命令练习(2) 7 M3 m4 N/ M4 p, c8 h# q% |2 d
1.程序分析:
7 ?. S- @( Q# o* k2.程序源代码:
0 ^  h$ r& k$ G! Z+ Z#include "stdio.h"
& f; t4 P- U6 T5 r#define exchange(a,b) { \ /*宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上"\"*/
: E" `) y1 x+ b9 G2 l: Dint t;\
& m0 n% T# D- e; @t=a;\
$ J: J0 r* ~+ ]. Y" \5 Ha=b;\
5 |5 U- y* Q' i3 Yb=t;\ " b3 j5 X4 U; v0 t% E+ Z5 H. i* `0 R
} 9 C* [+ O: P& M( l8 L7 W
void main(void)
1 R* v$ F# G! U5 M) b- a{ 0 L1 T. T, b7 p& F8 g5 o# h) w" d1 q
int x=10; 1 g- W  x  E1 A; a* g. D; i
int y=20; ) Z) `3 x. m( U! f
printf("x=%d; y=%d\n",x,y);
: S5 \- T* P' J5 @3 T# ~exchange(x,y);
3 D0 v& J  y% B& r! E; q' mprintf("x=%d; y=%d\n",x,y);
' ^: o5 A( p1 J3 @. Q5 Z6 K& v: j* _0 D}
: ^: l+ N% w# ?: _$ _  W==============================================================
4 ^& j3 b  `* L7 Z/ u【程序48
5 l" G6 c  A% t2 X$ d/ ^题目:宏#define命令练习(3) ' _. u. h2 l, q/ w- S
1.程序分析: 2 v: |7 `( k4 v) i4 \5 \( b: F
2.程序源代码:
" L( A9 ^2 o: c8 O3 s& A#define LAG >
% [- F8 w# ~' j2 V#define SMA <
$ t0 _: o" R# @( I#define EQ ==
6 v1 \- q9 y0 n#include "stdio.h" 6 W' M7 m6 }& W& R
void main()
7 @! h6 l3 V2 U$ ^{ int i=10; 7 e9 V2 N1 u( Q* I- I
int j=20; " D  C3 }6 k7 j$ c9 B* w5 o" E
if(i LAG j) 1 V) L& l; @; }! S
printf("\40: %d larger than %d \n",i,j);
" U/ ^" c2 z7 ~else if(i EQ j) 9 l  N+ Q$ W7 Q( x; W9 p
printf("\40: %d equal to %d \n",i,j); " k- a% G+ D7 H% m( j
else if(i SMA j)
  t4 w% o6 f. b& z/ m8 g( [printf("\40:%d smaller than %d \n",i,j); $ o7 D  x2 C5 o
else
  P- |5 q! B! W! l2 q+ T) [printf("\40: No such value.\n"); # o" E& h1 X& o5 [; f/ V
}
4 I5 X9 M* B9 H8 a7 b' H# W' @7 P==============================================================
: s7 e" c9 e. t8 s+ K

( k9 m% V9 r: e, R
分享到:  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, 2024-10-18 19:28 , Processed in 0.060576 second(s), 31 queries , Gzip On.

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

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

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