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

C语言算法38-48

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
【程序38
. h: p* }3 u1 B" \% Q题目:求一个3*3矩阵对角线元素之和
  u$ Z1 H* _) I1.程序分析:利用双重for循环控制输入二维数组,再将a累加后输出。
* G5 h, O0 A; u( W2.程序源代码:  j+ {$ N% z& c! Q' c: C+ p
main(): o1 W1 d) o7 `! V
{
; S, E: F% X' M2 Bfloat a[3][3],sum=0;
: }4 B  ?% q5 L4 b# Wint i,j;
) i  M( M; W( B% J# Gprintf("please input rectangle element:\n");0 J% ^8 A& o; C6 i
for(i=0;i<3;i++)7 i  k& r- j+ ~7 a. i; u
 for(j=0;j<3;j++)
- T7 S8 o! n1 p$ w scanf("%f",&a[j]);5 b! n( K/ j8 `3 y
for(i=0;i<3;i++)
  P& r" ?# n2 z( i/ X' \ sum=sum+a;
! k: H) l) ~3 @; w3 h& }printf("duijiaoxian he is %6.2f",sum);
- l9 E1 s, A& K; b$ R4 g6 M+ _}. F( o4 }1 e# e5 u  A& c$ H
==============================================================' z; L0 B' q( g# T
【程序393 A: O( e& e6 r
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
8 N* `9 l! G7 K2 U1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后! i$ @( Y) S: L* L9 L
     此元素之后的数,依次后移一个位置。 0 U5 N% P6 B5 i- C
2.程序源代码:$ k" y" c- ~  g4 a: q
main()
6 i( \6 y% H1 r* k2 S( w4 a1 A& ?{1 p' l5 e9 r8 F  _) Z3 Z
int a[11]={1,4,6,9,13,16,19,28,40,100};( C# u% \3 i) e* {3 i/ s
int temp1,temp2,number,end,i,j;8 e) ]) I) ]: [8 b- c
printf("original array is:\n");& X& o, }3 E9 F( d  e
for(i=0;i<10;i++)7 {6 g/ Y! c  a9 ]  e. F
 printf("%5d",a);" @9 l2 |: K# k4 r% B4 Z; {
printf("\n");  \, Y+ h5 A% B6 A  c- S5 ~
printf("insert a new number:");
, @. F1 b' U( r6 i% F4 Xscanf("%d",&number);
  L2 R: H0 C! @" {end=a[9];
/ v+ F$ t2 |( _/ o1 @if(number>end)
' T8 z" i4 C/ W/ A+ m+ Z( H a[10]=number;
7 y4 z/ _' q' P( delse
, L1 y8 E2 U4 C- f) z6 y {for(i=0;i<10;i++): y5 T$ c" |  L% W/ Z  L9 I* a
  { if(a>number)
% [5 E2 F* \% T' ~! {   {temp1=a;
1 Y0 q2 D' i* N) O; w5 g- M7 F2 ^    a=number;
9 W1 O4 D6 u' a  H5 i+ x   for(j=i+1;j<11;j++)0 u6 J, e. s2 F- p: c$ s
   {temp2=a[j];6 S* _8 d7 Y. M3 e! l. t, V
    a[j]=temp1;# V2 G& |" x  B5 y) K
    temp1=temp2;
: H- x% l, V- X+ k. P- q   }# V% H5 K; L1 G$ v( p) [) r  Z
   break;
* S4 v6 i5 r' }( K   }' D* |9 {3 ?: d% u5 [2 b# z  l
  }
8 E) q3 V# B5 X6 t) X0 ^2 o}0 l" Q8 b& e3 L
for(i=0;i<11;i++)5 s4 `# @3 s( t$ o' n
 printf("%6d",a);
7 ~4 D1 |: r# v3 T}
% d" g( _: o0 u7 p6 U==============================================================% D1 ^# @% [  x- T0 R' T- z2 _- C
【程序40
/ k# Z, f+ {% V- P6 _题目:将一个数组逆序输出。
8 B6 p) l& w3 o  Q- L8 o1.程序分析:用第一个与最后一个交换。, Z* S1 o( K# e6 e- P
2.程序源代码:! V4 n! [8 K# h& X& m2 p8 B
#define N 5
$ U- G& v1 I; ?+ K8 hmain()% ~& t/ A1 g% q1 q- K& Y
{ int a[N]={9,6,5,4,1},i,temp;0 p2 p$ T. O0 D: \
 printf("\n original array:\n");
' a1 b/ e" A; S' p4 H: Q! | for(i=0;i printf("%4d",a);# j9 o( _6 s0 N/ `) P8 q
 for(i=0;i {temp=a;) L. A" v/ [/ Y- W& U0 ?+ [6 G5 F! h- W
  a=a[N-i-1];
2 p$ W" y0 _8 i  j) D/ j* j3 Z4 y  a[N-i-1]=temp;0 B* i# E4 X, c1 Z4 a6 k' C9 R
 }
, ~- S5 e- u( X. J" X$ V# W  l/ ]printf("\n sorted array:\n");
* F( t  U/ F. [& dfor(i=0;i printf("%4d",a);
, O: i% s5 T" @1 K" H; J}
【程序41信盈达嵌入式企鹅一一起呜呜吧久零纪要 5 D3 z' }# L; L+ T& _# I6 T' r
题目:学习static定义静态变量的用法 " ]! m# O+ M1 i+ J- G5 q; S
1.程序分析: % h2 r6 |5 T3 x8 q
2.程序源代码:
5 B" d* _: N1 p( Z#include "stdio.h"
  h+ A1 c9 F, n1 W7 lvaRFunc()
* S& u( S: D; ]/ w{
& U- @1 y& f3 K" Y4 yint var=0; ' c3 x, D1 @6 c: c' T
static int static_var=0;
# a1 c5 J. ~& \6 m7 M% rprintf("\40:var equal %d \n",var); 1 F5 M; j  ^0 ]: M: _& c7 d3 A
printf("\40:static var equal %d \n",static_var); 3 [: g8 r# s6 N+ A" L. P. e$ ?6 t
printf("\n"); 9 z2 r7 W, M4 T# \
var++; " n/ A6 E: s+ G. r4 w. y0 j+ I2 U  T( b8 t
static_var++;
) y9 {1 B) F7 f; B} ' E4 `0 I( n0 @% ]
void main() 8 F% K+ r& `% O1 b
{int i;
  i$ p1 T& y' j4 H2 n& Afor(i=0;i<3;i++) , L$ O4 N2 f+ t) Q2 k" x
varfunc(); 3 q$ o# Z! o! @: p
}
1 d7 D# t" s- j8 O============================================================== ; n. J! L! u$ H! n9 Y% K3 u+ i
【程序42
; I8 F8 x7 a7 u& e; ^& Z  e. N题目:学习使用auto定义变量的用法
4 `8 N& ]9 r1 h! m, O1.程序分析: & V. v: w2 D: D1 n
2.程序源代码:
  O# U: Q3 R2 E( c% I# l2 t6 C#include "stdio.h" 8 u! z0 u! U' i' B" r
main()
! U; k( J0 q- ~8 c2 }; Q  F3 t{int i,num;
" y4 O) K* m$ wnum=2; ( @8 ^2 T1 b- j0 r8 @$ ~
for (i=0;i<3;i++)
( g" A( Z, [- _4 H6 {& _{ printf("\40: The num equal %d \n",num);
. U( p% ]+ W4 Q- Knum++; , L; k$ [8 j, s9 B, N4 ]
{ 6 H' x# M; ^& a' t
auto int num=1; ) v$ Y6 [( u* b$ X) g: X. T$ B4 z
printf("\40: The internal block num equal %d \n",num); , v+ l: V0 `9 h0 F. @& b
num++;
6 |3 N, h" P3 z" }} " Y4 w0 r+ \& N& Y" q3 O
}
+ N( L* z# u3 x. ?8 P: ~2 a} + w7 ~! ?1 m4 a2 _. l6 A0 C4 t
============================================================== ) Q1 ?+ @. P6 W- K" z$ u7 R/ V( ^
【程序43
: y: d, ]( Q" v' J题目:学习使用static的另一用法。
6 A! ]) D* c9 l# x1.程序分析: 5 m) s4 k& G8 G& [. c- \, M0 n
2.程序源代码:
  \4 J# ?* T$ Y0 ]#include "stdio.h"
) O4 u" H2 N! J7 s! b) Q  Vmain()
( M% ?+ [9 @% a, {* S{ 4 e# s; ~( i: {* \
int i,num; 5 c# B* e3 y( o
num=2; 9 _) m) w( e5 v+ s+ c
for(i=0;i<3;i++) - p/ d% O0 @- a" Q, i
{ 9 `7 c7 f* I. x) N
printf("\40: The num equal %d \n",num);
+ R& J0 {  Z% dnum++;
" q. ]8 a6 M: E) {* i  f{ * m# E- k9 t* L2 P+ q% l
static int num=1;
; U3 p3 }4 t! q' H% U  pprintf("\40:The internal block num equal %d\n",num); 6 u; e3 _% e$ ]
num++; ! n1 A, j* w6 r% W
} 6 t* w. ^' [2 v* t4 B
} 4 L1 h! A$ O7 e0 l2 S
}
; d0 n! W' G/ V. x1 k/ R============================================================== ' H: n, V; i" T5 y( P1 B9 e
【程序44" z8 [: q& {3 d- P6 b4 G' @
题目:学习使用external的用法。 1 M4 g" v. L) ]  C' j9 I9 m0 [
1.程序分析:
1 t0 e6 `  [5 ]3 Q5 D- @) {2.程序源代码:
" x0 g* [, N8 E# F  o#include "stdio.h"
! B1 o/ w; B* F& K  Pint a,b,c;
7 B* H" c3 r( _) o1 P2 D2 L7 _void add() ; r/ Y$ F  I' D, |" f+ Y: `* u
{ int a; & n6 H4 l$ U. e1 W& e
a=3;
) g; v: F1 q2 Ac=a+b; ' i+ F, N: w: l' ]- J- W
} 3 c, V0 q! ^% G& o+ ]
void main() & \3 ~+ [& u" V; ^: C' i
{ a=b=4; " n  J* Z: N* T; a' c; c# ~0 w! l1 D
add();
3 J6 J7 o7 `: d  Dprintf("The value of c is equal to %d\n",c);
* r2 D& h; b* l9 Y; y& O} 7 {; j& s1 `* f6 a
==============================================================
, i& w1 t; J+ a1 K【程序45( W1 z5 I: U2 r& H+ r
题目:学习使用register定义变量的方法。
6 Q2 C5 q4 K+ L4 t* M1.程序分析:
7 U8 |* @; m8 U0 J* Q* h2.程序源代码:
- c* ?. |  i# s- x& y1 h4 Hvoid main() " u: {* Z6 {, |, D! x
{
8 ^) N* i* |, J1 K: D% m0 qregister int i;
4 f( I0 a, E8 w5 f# j# M: t( oint tmp=0; . T, e; X0 o9 g9 G9 B) P
for(i=1;i<=100;i++)
  W7 h- `: M3 I2 q5 s/ J0 x% ^tmp+=i; 2 D' g6 ?! @5 w) Y$ \$ y- v$ }  m
printf("The sum is %d\n",tmp);
4 `: }# t2 q+ }3 V* Z) C. U+ X} : L- @$ m* f* B
============================================================== ( L1 ]9 y1 V) N
【程序46
" Y3 l' v, m+ {: Y6 T题目:宏#define命令练习(1)
& ?- c3 L+ k7 _# i7 M# `1.程序分析: / _. G5 `/ Q! r- W% q
2.程序源代码:
: q; p! ^6 C2 y#include "stdio.h" ; M$ W. k7 K( l% [
#define TRUE 1
% f2 R+ E: T" ^) ?. a#define FALSE 0
& o! w: q3 h$ N) G$ w1 `4 P#define SQ(x) (x)*(x)
( F4 L) l% x+ ?# ]  dvoid main()
+ R, G5 U# f# e7 u7 o* b{ * D, ^; {, t9 G" b& x
int num;
3 C1 Y* {4 x" h  Q& a# V" s4 W8 Gint again=1; 5 }7 T: |7 N2 h
printf("\40: Program will stop if input value less than 50.\n"); . G8 K5 ~' T8 K
while(again) 4 x6 Q6 Y& I$ Q+ W2 E/ x
{
' K, Z  q, ~) A% Gprintf("\40lease input number==>");
1 A* `1 ^  b) D: J8 r( t& ]/ }scanf("%d",&num); + ]& S+ E; q& i
printf("\40:The square for this number is %d \n",SQ(num));
; P3 K, }: v7 S: _if(num>=50) % |* Q! V* ?0 n6 v" n" l( z7 a
again=TRUE;
  Z, m% `8 d7 p( Q6 l/ delse # a. e6 [  `& N- Z) A* m1 E
again=FALSE; , W8 P6 e# j% a, n: }6 @3 k5 t4 t9 C
}
& h, v/ {4 \2 z( h+ k9 q) b# N) o1 R( M8 L} 7 p' s- {3 C2 G) H5 ?
============================================================== 4 ~3 u7 q2 {) x, v( ]8 l
【程序476 P4 Y0 c& S: [( {2 O
题目:宏#define命令练习(2)
. U% @1 y; k: g1.程序分析: ) b2 H( [: T4 G9 \- t: P
2.程序源代码:
3 {$ B$ n' N* `0 }#include "stdio.h"
* I) h3 A  x# r+ D& Y4 h#define exchange(a,b) { \ /*宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上"\"*/ $ K, p( E) R6 ~- b3 z8 }* `9 l: _
int t;\
4 p8 ^+ T  N( l; X: q% B  It=a;\
$ k" S0 B9 ^) @a=b;\
( v, N5 _  \7 fb=t;\
6 I6 [+ E5 K% t2 I2 }# C' @) h}
9 b. l7 L% Z; j$ D: L6 Evoid main(void)
2 [9 Z7 v9 m# H/ @& Y. y{ 8 v/ X0 ?3 c+ w6 x
int x=10;
# K, t" ?; a. @1 K+ t& l6 ~int y=20;
3 |6 w; O4 A' N" U$ H% cprintf("x=%d; y=%d\n",x,y);
# Q# `# s7 A- u2 E" }$ X' n" x5 rexchange(x,y);
1 c* c5 x; g( ~1 W) ~+ z: eprintf("x=%d; y=%d\n",x,y);
# d/ r% O0 F* K3 e, \} 9 [% @8 W0 t4 c2 Q* p# F
==============================================================
$ K- R; I4 B) h: F% `$ |【程序48" i3 Q8 Q; |8 q9 I) R
题目:宏#define命令练习(3)
- s# f" B* \. f' q1.程序分析:
1 f/ o# d+ A# g/ p8 {& k& E1 ?2.程序源代码:
  w5 e, I$ F8 x5 u7 V  j$ J#define LAG >
  t/ w; i8 t8 m3 {5 l" V, A. |#define SMA < & ?. A; y2 z! r4 J3 B6 G* G
#define EQ ==
# o( U. d3 x+ T#include "stdio.h"
0 ~8 ^- C9 D& b: m! Dvoid main()
" F# q0 a' o* O& O( j{ int i=10;
( h3 V! W% ?3 a2 ~9 G5 c, ]int j=20; $ x. i0 g1 c5 R% R* X& j
if(i LAG j)
& B6 w1 D* W6 p! Z2 ]( \printf("\40: %d larger than %d \n",i,j); 3 s; Z+ k  R/ y7 n" b
else if(i EQ j) 8 W0 N- U6 \! X
printf("\40: %d equal to %d \n",i,j);
4 N' l/ w9 o; e- relse if(i SMA j) 8 G/ z+ m% g+ A" k
printf("\40:%d smaller than %d \n",i,j);
9 @! I! t& e" I2 felse
1 C! V( K  T* b; v% nprintf("\40: No such value.\n"); + B$ K; k  E/ N, j" k) x7 z& @5 S
}
/ i1 g9 n1 Z" U============================================================== . }1 P0 H8 }6 X

* O3 X( V6 Q, m

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-4 16:45 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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