找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

C语言经典算法77-86

[复制链接]

114

主题

136

帖子

1000

积分

四级会员(40)

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

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

EDA365欢迎您!

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

x
【程序77
7 i* ]( H$ B2 O题目:填空练习(指向指针的指针)
6 `" }# E! \5 c4 A8 a1.程序分析:
9 j. K8 n) k) Z( h( I2.程序源代码:
" l% y2 w+ d9 v) G: U8 i& K# kmain()
' O* _/ e1 i$ [6 w6 _{ char *s[]={"man","woman","girl","boy","sister"};
& \, H1 O5 ]; _/ C7 Echar **q; 9 f* e' z$ v" a/ P2 q8 ^5 i
int k; : {- B- L0 v: J! E$ R
for(k=0;k<5;k++)
) c; X  T$ d: N* M8 M3 ~{ ;/*这里填写什么语句*/ & a) I0 G7 w4 E! B
printf("%s\n",*q);
' N! ^! D$ f- }; _3 |& x. @}
- h, l, T; K  |7 ?$ v} % t* A8 G9 y5 [; K9 T& e, L
==============================================================
" r$ b' z# B8 u  ~9 K【程序78- ?6 F' l5 b2 _* \
题目:找到年龄最大的人,并输出。请找出程序中有什么问题。   v' j. N1 G. h* V( G
1.程序分析:
3 G+ a% Y2 p$ _" E' Q" m2.程序源代码: * E" a5 B! w# i# s/ c
#define N 4
9 Q  l" V  r; e# L* Z* b. d#include "stdio.h"
* l/ }4 U# d7 T/ h# Z% nstatic struct man
/ N2 g1 a; g* ]) c6 q! @0 T{ char name[20]; : M* P4 m$ k* y' z- N
int age; 6 H- H+ z& s% E( ?# q' n' T
} person[N]={"li",18,"wang",19,"zhang",20,"sun",22}; 3 U4 Z8 Y% A6 Y; {- D# K7 l
main()
5 i0 w* V! o2 J3 H7 k) s* f{struct man *q,*p;
1 b: F3 u; V+ \: I' J0 I/ d0 x. @% Yint i,m=0;
1 I' h- G! [  l9 Fp=person; 1 D0 ^+ K0 C6 {  z5 w! s  N5 j, l
for (i=0;i{if(mage) ! }: p- z% d" y! e' l
q=p++;
* f4 y/ `" |' K# b; n; im=q->age;} ) j/ M; n( b: w; @$ H
printf("%s,%d",(*q).name,(*q).age); $ f, O9 j! B; D+ q# Z
}   q8 W6 Z, D9 ?3 h- Z
============================================================== $ N' O" _; ?5 l4 E: @# M5 q
【程序79
( J; v* X: V4 S4 f题目:字符串排序。
" }) N8 [% h8 \% t. C  g1.程序分析: 0 N( O: T% D2 d7 N( q* O
2.程序源代码: 0 u: \: W8 t& x, o
main()
) t+ F" k$ o- l{ ( j4 M6 I" b- b* u0 Z! J( I
char *str1[20],*str2[20],*str3[20]; 6 _% R2 k- W9 w* |6 p" u
char swap();
! {" W8 ?+ o+ Fprintf("please input three strings\n"); * H. i! t! U/ I+ e1 Q
scanf("%s",str1); + }# L) _* m6 x3 }7 t9 k0 P
scanf("%s",str2); 4 E- W* l5 _- \  _% P2 K. F  a
scanf("%s",str3); $ \1 W. V% P" m& e
if(strcmp(str1,str2)>0) swap(str1,str2); 8 r! e# E7 _" ?+ U
if(strcmp(str1,str3)>0) swap(str1,str3);
& e( {" h' z0 g7 \9 W1 e, N  dif(strcmp(str2,str3)>0) swap(str2,str3); / X) R3 {# @; y9 @/ C
printf("after being sorted\n"); 9 e, X/ E1 X1 R! {0 t+ @
printf("%s\n%s\n%s\n",str1,str2,str3);
( b0 M; M0 y/ m6 `}
. _/ ^% |+ b* c5 E, Ychar swap(p1,p2) : {! i( Z# k- x# i  a" ~$ Y+ {
char *p1,*p2;
) F$ z# C0 W* }0 z  Z{
/ }, r5 a$ F+ k  u: {char *p[20]; 4 \$ i. p7 f3 n" [" H
strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p); 8 b9 }: \9 z2 l9 R) M) v
}
6 S2 o, W" _; m0 s==============================================================
8 }& s' e! B" }! m【程序80嵌入式信盈达企鹅要妖气呜呜吧久零就要
% p$ ?! Z) \& N; |6 ]/ P' P题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只
; V2 e( x4 @5 r+ f. T. O猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了 $ j3 o% y& X7 i( E0 X8 u
一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的, . ]# K: v- }6 z* [5 F
问海滩上原来最少有多少个桃子?
1 V% }# u9 j# {% @1.程序分析: & U8 G# v9 e- O9 M* b: X' O( u6 I
2.程序源代码: / C  @  e# C8 s8 ?# F  G8 i# Z
main()
4 K5 r1 {- A) b; t0 e" C0 C1 C) `5 \{int i,m,j,k,count;
  P+ q3 ]+ s: [. jfor(i=4;i<10000;i+=4) & [: S' f1 p7 u1 E' K& A
{ count=0;
7 p0 W# c* G4 U3 b# }; ^' k) Vm=i; ! `% d6 H) \( R4 b: A
for(k=0;k<5;k++)
; `0 b+ W2 ]$ c- i4 Z{
3 u1 L% m! u# C- M, g/ o! _! Yj=i/4*5+1; & l: U. k7 B- Q
i=j; ' D. P; W7 r6 d8 e+ v
if(j%4==0)
  s" Z1 D8 z3 O6 R5 H* p( ^& hcount++;
. Q; ]; f) b5 H6 D3 gelse + b6 R7 n  i, c3 F
break;
$ m# Q# H5 U; T0 ]1 J}
* g4 y4 F% f7 m$ g, Q, hi=m;
; i* T. x1 G& I  o3 Iif(count==4)
! x6 R$ {0 G6 R1 {4 p) C{printf("%d\n",count);
& \' |+ T5 c5 {' C# |6 gbreak;}
. Z1 M; ~" C& s: c" A6 e}
/ p1 Q4 R0 A% m0 C; k8 p} ' _) y  p6 v2 y3 r6 E6 z. z
【程序81/ G/ x# ?: y1 M* N& y& Z
题目:809*??=800*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。 $ P# x6 a- T' D! s4 s  B, O
1.程序分析:
. W" s' h& ]3 X8 C9 I/ z+ C) c2.程序源代码: $ `2 K  Z. ]# B4 ?
output(long b,long i) 4 ]6 T% X+ O- Y, z, k2 d
{ printf("\n%ld/%ld=809*%ld+%ld",b,i,i,b%i);
& y7 O7 U4 I2 E2 J! N: M9 ?}
: s+ N5 v. A2 A- xmain()
& ]' K4 s! t: P7 Q% o: r{long int a,b,i;
- \+ g& k* @" h$ K9 Pa=809;
$ s! H+ B9 ?; i0 w* I( Cfor(i=10;i<100;i++)
$ c) `. |3 m* X# @{b=i*a+1; ; T3 Y/ q! B( P
if(b>=1000&&b<=10000&&8*i<100&&9*i>=100)
7 q) ]& p& L7 b8 a( K' ooutput(b,i); } ( D  d% I* `8 z  z) H
}
  `: }! Y2 ]% Q* V0 e- m============================================================== ! b% K4 D3 P2 s
【程序827 y- G4 X  ?9 {& {: r/ c
题目:八进制转换为十进制
/ O2 j5 B9 V1 ^5 g1 Q) `, `1.程序分析:
1 _8 }( b& x- _9 \) X2.程序源代码:
- u6 \" [5 m+ A+ L0 C6 X- imain() . a1 M2 W3 m" l( m- u& i+ J0 a
{ char *p,s[6];int n; 1 c9 Z& Q9 Z# }- g( S- ~7 X+ ], f9 \4 n
p=s;
& p% i( v/ m' C8 Q& `! X' rgets(p); 5 V7 N* K7 `+ f# S7 |
n=0;
4 d- _4 v' G2 h, ]" ~$ jwhile(*(p)!='\0') 2 b, f9 n0 [7 A7 U
{n=n*8+*p-'0';
- |5 q+ g4 K7 M# O; j1 vp++;} 0 y) n4 B) C4 M( R- C6 L
printf("%d",n); 4 T3 U( M7 i, Y  J: I
} " A) l6 T) @: j$ X- ~
============================================================== ) y, e, H- t# W  G4 T2 W6 ^
【程序83
6 R) Z. h5 W4 Z) E题目:求0—7所能组成的奇数个数。
6 B+ Q% _4 Q; A# A9 Z, b1.程序分析: % I0 K' G7 t# E6 {( G
2.程序源代码: " i7 H, e. t0 \) ^, G
main()
5 x0 {  M, `# M: Y9 B* Q{ + c4 k" }5 a1 `: f, e6 h( v* K
long sum=4,s=4; ; @: k2 F$ Q7 Q+ B% C
int j;
2 H( n- a- r+ N0 p5 Pfor(j=2;j<=8;j++)/*j is place of number*/ 0 ?3 m1 X* j& |# R1 [3 a
{ printf("\n%ld",sum); 0 b. C, i: U! R- P" r( K& U0 e
if(j<=2) & u* s. o: I; q* ^0 x
s*=7;
* P4 `2 B7 `6 }+ J, e7 Helse   [  K- O  Y$ V
s*=8; % N6 s" Q+ Z; G, C
sum+=s;}
* M' @1 H# F- C- o/ Pprintf("\nsum=%ld",sum);
+ L$ D4 P" f- Y6 n5 J}
7 u% J% I) n" C# y; A+ l============================================================== 5 |8 C) b, V& A. e) P2 z4 M
【程序84- X3 R0 {* Y! u/ o# |% i4 g
题目:一个偶数总能表示为两个素数之和。
, d  `8 y8 c; g! J$ P1 b1.程序分析:
$ _) E5 S! T8 k$ A9 L' ~2.程序源代码:
+ v) U7 e6 i! `: m" q#include "stdio.h"
# |( u) q% V- u% e0 ~#include "math.h" 6 \( U6 @4 T: w- E5 ]
main()
* e( {9 D1 z4 U+ G/ p{ int a,b,c,d;
6 w: i8 e" s# j1 P% m- Nscanf("%d",&a);
) V) y1 f2 D4 L2 L4 N+ Rfor(b=3;b<=a/2;b+=2) 8 G3 Y* b5 Q, Q
{ for(c=2;c<=sqrt(b);c++)   s$ J3 i9 m5 G6 _2 f3 ~% [
if(b%c==0) break; 9 f1 z* v! c0 ]% L: y& y
if(c>sqrt(b)) : r) v  {7 b% s6 X+ I
d=a-b;
; z8 F- x  ]0 m0 b/ F0 Zelse % M9 H* O1 h$ U) l/ S
break; 7 ~1 M4 U5 l. T- _/ R; E
for(c=2;c<=sqrt(d);c++) & p2 M& c- Z  n& ]7 F, M
if(d%c==0) break; ( m! B; l$ W8 D+ x6 y
if(c>sqrt(d)) 7 L2 C9 M% T0 p% e
printf("%d=%d+%d\n",a,b,d);
! k  m8 K) ~3 H; x, @6 K. `} - U; N0 ^, a3 M9 |
} 9 v" j+ ?6 F0 E/ A
==============================================================
$ [6 L; {! n- n4 D8 q【程序85
& x: Y" H& m& ~题目:判断一个素数能被几个9整除 8 L8 A- z1 ?4 N+ X. _
1.程序分析:
( T" K! P6 _" T  G2 x+ L+ O" `0 H2.程序源代码:
4 K; F% x0 E3 O5 Q- O8 r  z1 Kmain() 4 r9 u3 N4 v% w: p
{ long int m9=9,sum=9;
/ `# S% \4 y6 c. _0 oint zi,n1=1,c9=1;
4 M2 @: f, H, h7 R% {% @" m+ b6 k- A6 ]8 ?scanf("%d",&zi); 5 X" D7 t* K& u2 X
while(n1!=0) ) K* F1 ^. J! a
{ if(!(sum%zi)) 4 {  s  @7 K. m" P& O0 A
n1=0; - q- M3 T) p7 L7 c" z9 H( p8 p
else 6 z! ]1 y8 W" i& K" x. N9 }
{m9=m9*10;
7 s4 I& J) a" p# a1 T0 x: Esum=sum+m9;
# C7 I! f: u& \7 f+ W% Gc9++;
/ ~0 z2 u4 q  j! S/ U} ' s0 W! w8 Z6 M% ~  J
}
0 t: a. B5 X- I( r3 u+ q1 g5 \: K* Uprintf("%ld,can be divided by %d \"9\"",sum,c9); 1 j1 H( z6 C! |' C; g" q
} 2 m1 d8 P. l* L& T+ x! ^
============================================================== : ?! @/ w. F+ j' U& G8 r
【程序86" n9 a- [" J9 M8 z% o9 c, `) H
题目:两个字符串连接程序 ) n, T. C* h1 V/ e
1.程序分析:
: a  ]/ L# V0 _6 o5 n/ k2.程序源代码: 4 f) Y2 E( {6 q* a. o: F& H& Q
#include "stdio.h"
+ l9 t+ I: ]5 [2 K# T. S. }main() % y: s) R% R* Q" U5 |' o* Q4 J
{char a[]="acegikm"; , C2 L) }7 @  S
char b[]="bdfhjlnpq"; ; m- b6 S# n9 i& Q! O
char c[80],*p; : w, ^$ T: X* M  C) Y; [3 `( z  e
int i=0,j=0,k=0; / H" Q! S! R9 @: D/ p
while(a!='\0'&&b[j]!='\0') ! {- {/ ]2 }- r0 h
{if (a { c[k]=a;i++;} 1 Y* f; f, u$ c& b3 y
else
/ h% z4 j+ m9 T( O& I$ c0 Hc[k]=b[j++]; ; Q+ v' i4 I% h. y9 X* k* O& S
k++;
7 ^' Y* s$ Z9 R. {* R" K9 ?} ) X. C! q" d3 q& c* P
c[k]='\0';
. ^. I0 ]' d9 Q4 xif(a=='\0')
. d! ]( J. @7 {4 N! a, u! ]! o0 M9 Fp=b+j; 5 J* _1 q" y# r( x1 K# l+ o
else 9 \( k2 c- Y, `' {* O
p=a+i;
7 p( h3 q1 ]' n6 l) v" U" j& Tstrcat(c,p); / R7 h/ b$ @' t& P$ z: J0 W
puts(c); 0 q; i2 q1 E* l8 _6 m
} + I* p. \( G* U! O: s2 w- [  f

( C% o: V8 o0 W8 z) Y0 }# x. |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

0

主题

44

帖子

276

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
276
2#
发表于 2017-11-6 10:37 | 只看该作者
666,回味C语言

114

主题

136

帖子

1000

积分

四级会员(40)

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

积分
1000
3#
 楼主| 发表于 2017-11-6 11:57 | 只看该作者
a4536300 发表于 2017-11-6 10:373 ^6 I4 J3 D1 Q7 l" j; B9 J! S% k
666,回味C语言
* o0 V- S! ~5 G- o& i; \
现在学到哪了?
- T6 E8 X) R: h# A4 k

0

主题

44

帖子

276

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

积分
276
4#
发表于 2017-11-7 10:15 | 只看该作者
现在改学C++了
  `# [# U# j) A! I- d7 k: o
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-9-17 04:32 , Processed in 0.081680 second(s), 35 queries , Gzip On.

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

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

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