找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

C语言算法6-15

[复制链接]

114

主题

136

帖子

1000

积分

四级会员(40)

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

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

EDA365欢迎您!

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

x
【程序6
0 P" l5 n- Z1 T% r) \1 i  d题目:用*号输出字母C的图案。 ( n% f$ f4 Z5 o, g* b7 n' b- y
1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。 & V' z, Y7 r+ p
2.程序源代码:
7 @0 K) n! x2 ]& M! H#include "stdio.h" " P/ I4 I. g: e; y) F# J
main() {
1 K8 A! e8 L: p, ~$ d: m0 Oprintf("Hello C-world!\n");   W( e# E5 a8 `6 @( T6 `5 X$ S
printf(" ****\n"); 9 W  P# ?2 S& @* ]& q! O9 l/ o
printf(" *\n");   K7 `; m! m% t
printf(" * \n"); " B6 o  N9 s4 v! l+ \( s
printf(" ****\n"); } " j$ k' @" V: ]# B. T
============================================================== " R% n' d$ V3 g. i# v) i
【程序7# z! l) K1 f( ]
题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!
$ \. L0 t+ @) k1.程序分析:字符共有256个。不同字符,图形不一样。 ( z6 ]/ s- u) j5 ^
2.程序源代码: 9 G) g+ d  ^' x. V
#include "stdio.h"
. n2 y+ m- i) _# ?main() , P; J! I. w5 ?" m% y- ?& e) r
{ 6 s+ c% T, _9 [/ r, x$ {
char a=176,b=219;
" @6 ^- F8 r" I8 M8 f5 z; Hprintf("%c%c%c%c%c\n",b,a,a,a,b);
; c3 c% D8 e$ A; r- k0 }printf("%c%c%c%c%c\n",a,b,a,b,a);
+ H0 }7 k/ E: m! i7 u3 E3 U. Uprintf("%c%c%c%c%c\n",a,a,b,a,a);
- l! @6 v* E1 h; F/ H+ K4 `printf("%c%c%c%c%c\n",a,b,a,b,a);
( N0 q8 K, `- K  n# ]printf("%c%c%c%c%c\n",b,a,a,a,b);} - L4 l( W& o9 v# \9 S
==============================================================
1 N1 r8 r' V% c; W+ k【程序83 N5 k# I8 T! U, S7 \
题目:输出9*9口诀。 - I  n( L/ ^# m$ w0 r! m3 O
1.程序分析:分行与列考虑,共99列,i控制行,j控制列。 5 X7 v  f3 V4 }# e
2.程序源代码: # |0 h  a, Y: G
#include "stdio.h"
3 Q) u4 k7 B  W: {1 W7 m6 ^: s8 Bmain() ) {' c: q6 I9 @& H, C
{ 8 s* U8 Q) Q. Y) ~
int i,j,result; 4 `, V. Z1 P" o" I+ U# o
printf("\n"); 4 G0 P) f  x7 `+ B$ i) g2 |0 ~7 U
for (i=1;i<10;i++)
1 v3 i9 L/ ]- O, u# ~' I2 Z{ for(j=1;j<10;j++) ! d6 D; H8 W% `
{
" l; Z4 V1 L. r' @result=i*j; % Q( q) _) M9 o$ v5 `. r" p
printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3*/
1 m1 [9 Z* D, w- A1 Z/ e1 k( r}
% U/ Z( e" S8 Z% q+ u$ Wprintf("\n");/*每一行后换行*/   b; ^: U, M8 ~' p/ C* @
} " n" n) a, }$ W/ S
}
/ d$ x/ [, Y( F$ |, @5 G==============================================================
) e1 ^; x* g+ n& E: }【程序9
+ J* w& p. Z* i3 B题目:要求输出国际象棋棋盘。 (嵌入式学习企鹅要妖气呜呜吧久零就要)) i! ]7 d+ Y. F  J0 C/ I' D* d
1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。   s4 ~& {  H) N+ [  d: M2 V
2.程序源代码:
7 ^7 Q# {: S6 a- Y3 f#include "stdio.h"
* W- ^6 G5 a6 _2 o" Q7 V, O* Dmain() - P- I$ `. h( V
{
. U) K# [  y" l3 O7 @int i,j;
) P3 y; P! f% u& tfor(i=0;i<8;i++)
; W& @1 h' E9 ]{
8 b3 e( ?* ]* Efor(j=0;j<8;j++) ( P6 l( N8 J( S6 @( R
if((i+j)%2==0)
& O& k' R; G, R. g2 t' ?7 f) Aprintf("%c%c",219,219); & i7 ^) X8 l4 J0 L$ I/ t( c: v' G
else ; h3 W' R% U9 M+ ~0 T
printf(" "); 8 ^/ m' ?, ]0 F8 E4 p6 q
printf("\n");
+ y! p/ d: b+ \- {} " T( Z- n8 J4 D) {# p) w, q
}
6 c, g9 }. B9 _! l. J; S==============================================================
8 m2 ~/ `7 ]+ ?( e0 N* h【程序104 _; |( T: D. r. D
题目:打印楼梯,同时在楼梯上方打印两个笑脸。
+ m# F2 Q6 l9 y2 R" f( U1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。 " D, _, ]1 G" i6 W8 |% q
2.程序源代码: " J/ d3 f0 j: _+ @) P% ?0 Z
#include "stdio.h"
0 y% f( ]/ X5 Y# r2 Jmain() $ l9 z& X6 @* C# Z# k: l' |# _
{
* I0 U3 W8 s9 ?" }3 ~& ^5 |3 n6 qint i,j; 0 X6 V! [5 A$ ~' u
printf("\1\1\n");/*输出两个笑脸*/ * {6 y, \9 h- E# P: A. v
for(i=1;i<11;i++)
/ j/ a: S' {! j{ . C& W2 i, V) Y- T# y
for(j=1;j<=i;j++)   A4 d' h0 w) `, R5 G* W! v' _
printf("%c%c",219,219); 0 h( {8 e( g; C- ~7 A: h' M
printf("\n");
; {% J' e, |$ @! ^}
/ b1 H. G1 t4 c} 2 a8 G9 K* ?% `5 ~+ ~0 _5 K8 o& v

+ ~/ R( D/ f* U5 }6 I7 }
0 Q3 {- D" _: y& s- R$ A" V" D# N: \. g% E
作者: zhlei81 2005-1-22 11:29 回复此发言
4 R, Z9 M: o- Y8 m5 o, ]6 O" m. d* e# O  N
--------------------------------------------------------------------------------
6 \7 j; g# l6 }% s4 \
* e5 e$ F! b# O! e3 回复:经典C源程序100$ ]4 a, N6 Q8 r( J9 e$ d# n% H
【程序11
% a1 {3 Y7 [# M. \1 s题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月
! X! h0 m) L' t6 U; n后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
4 h0 ~" N' \( Q$ @, f3 c8 D1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
. L* z5 X; y9 F2 n8 x3 P$ [2.程序源代码: : X5 I, a1 N8 Y% R& p
main() ' L+ D% y  j3 K
{ " ]5 H1 K3 H4 l9 p9 q
long f1,f2;
$ L# x0 `5 Q5 U) H4 Wint i;
' K( F4 E2 I/ O2 q; Hf1=f2=1;
% E1 U/ K7 V* K, ^' jfor(i=1;i<=20;i++) . I7 v/ \* c  C9 y5 Z  u9 a  ]
{ printf("%12ld %12ld",f1,f2); * E& j: s# f+ Y$ A
if(i%2==0) printf("\n");/*控制输出,每行四个*/ " U' R0 Y! `: l; ^
f1=f1+f2; /*前两个月加起来赋值给第三个月*/
& V, V* m6 \! F2 X* Uf2=f1+f2; /*前两个月加起来赋值给第三个月*/
2 J! B  d+ z" b. g; w}
, ?. g3 Y" b4 L2 c) Y/ s' I} $ c1 g. m2 j* a: d) `
============================================================== # D9 \9 ~& S5 j, N+ P1 Q9 m; I
【程序12
) t# I, [" t/ B6 b) G" G题目:判断101-200之间有多少个素数,并输出所有素数。
' c" Q7 }1 o+ g  u3 I1 E, }/ X1.程序分析:判断素数的方法:用一个数分别去除2sqrt(这个数),如果能被整除, 9 B+ m0 G4 s+ J; f' U8 m8 {
则表明此数不是素数,反之是素数。
6 x( d  B( l) D8 ^2.程序源代码:
/ |" A7 K; }; O* o" p#include "math.h"
" W+ k- o2 @$ |- B/ C  Tmain() / F3 s2 y. Q% v( O& N: P7 |2 P1 l
{
$ P# O8 G- e! i1 H) H+ a( }; Lint m,i,k,h=0,leap=1;
! ~) P* s4 @3 L/ G) D0 f; hprintf("\n"); . C, }, E+ E  _& h2 Q  E, o2 c
for(m=101;m<=200;m++) ( ?& U8 X% w+ c4 @2 S' {- G- E
{ k=sqrt(m+1);
# s# m: U# x, \. P3 {for(i=2;i<=k;i++)
) L8 q# G7 N+ s: a& O$ p* h  C) ~if(m%i==0)
. \  w0 R2 r7 b# {  D3 X  u{leap=0;break;}
7 a* o% Y: X+ m, S2 v. xif(leap) {printf("%-4d",m);h++;
# g2 [4 ^& f( K! ?0 Vif(h%10==0)
' [( W1 o: |3 rprintf("\n"); ! H. @1 d  e' ?# d3 O
} # K% _* V) J6 |# c8 ?
leap=1; + @: i4 O1 M6 E  n5 K' X
}
# s# l# Q/ D3 wprintf("\nThe total is %d",h); # U4 W' ~: Q6 w  z$ [/ [+ r( `
}
' o3 ?3 A  \/ |( U. H" k============================================================== ' c2 j  {" s( ^) A6 |$ J
【程序137 J4 \& P- |4 D0 h/ P7 G
题目:打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数 3 c1 l3 `# p! ~
本身。例如:153是一个水仙花数,因为153=1的三次方+5的三次方+3的三次方。
$ {: s1 T" ?& _  c( f. c1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
. \9 P' U" Q- @' w9 t" z; F2.程序源代码: $ a& {; W6 c* W; R
main() " Q$ ?& Z5 M- p3 x, g
{
/ k& ^9 u& m# p2 `# R# H- P) Nint i,j,k,n; 3 a2 o( g, C, O& D7 d
printf("'water flower'number is:");
$ d& X* Z( G, j* s" j) {0 P1 Dfor(n=100;n<1000;n++) ) `: t1 t) O, Z, B6 D
{ 5 Y: j5 h: [; n# k! I" B: [3 g
i=n/100;/*分解出百位*/
, w" s, s5 s1 u+ Mj=n/10%10;/*分解出十位*/
/ d1 Y* t! G8 e- ~, g% T1 rk=n%10;/*分解出个位*/ . t8 q4 P$ b  E! N
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
  w) M, Y* K* X5 q{ / E9 @( f6 ^9 [! a+ ]
printf("%-5d",n);
! R4 p) n) n, E' ~: k}
( j0 F& n5 I) m8 t# X- {% O2 [  Z- ~} ( ^9 H" w6 l4 q' h9 y  D
printf("\n");
2 R& e1 }$ M9 l, z' o}
1 j: Y6 R# h/ V9 q( Y$ A& M# F==============================================================
" K0 @, x0 e: v" q【程序14* t' }; f5 P9 Y0 a9 X2 n
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5, O2 Q8 h: v) `! S8 R/ a

  m8 K1 k* b* ~+ e3 d6 Z1 }! |/ l程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: 9 E- C. p& v5 I$ T7 `% Z3 M
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 - \9 O8 L4 m0 G9 S
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n, . }0 J( j3 h7 y4 L3 X8 {
重复执行第一步。
* D+ Q, i* g* M8 ?) D: [( W(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
  w7 a( Y, N; s0 O5 d
5 @7 e" @" u: _2.程序源代码:
/ J1 S* c1 z6 l5 V2 W/* zheng int is divided yinshu*/ . |/ F& X2 ]+ d. ], D& B( p
main()
6 m9 P2 J2 F% N) p+ ^& v3 k1 V/ D{
: L* i- w* C+ w' V+ qint n,i; ) v( h1 I4 Y2 O  E# w' J
printf("\nplease input a number:\n");
: f# D+ v+ x& m( P& Lscanf("%d",&n);
5 O5 J/ ]9 _2 {  A9 xprintf("%d=",n); . i* t5 v( y* O1 f
for(i=2;i<=n;i++)
5 K" Y5 d( |$ g: J% k! B{ 5 H7 ~, K( j' [% U# M  ~' Q; D- E" [' [/ B
while(n!=i)
! N7 A4 V! Y0 t5 B" c{
& t3 u" M( |# b3 l  v6 B, b9 q+ Yif(n%i==0)
. c3 d* \, n' E( R4 o# ?{ printf("%d*",i); / b4 a! X# }. w5 w0 f$ _& P- l# L! x
n=n/i; ( X" C* ~4 R5 \3 P6 \( h9 A9 e9 `
} - X. c/ ^) N1 t: l# V
else
3 h. n% F1 c6 o+ Ibreak;
; C2 @7 ~) e' ^6 @) G* s( `+ i} ( D: X' `5 T7 {) V/ W) U
}
; P' u9 p* m2 @! b  D; N% ~printf("%d",n);}
# L3 l4 X0 T( k# c! s$ P============================================================== ' N+ H( M+ e# Z
【程序15
2 z& o& Q6 p- j9 {5 E  t! C题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示, " ~) e- I6 L9 g$ F$ y8 s
60分以下的用C表示。 3 u. _& r6 ~. B) ]
1.程序分析:(a>b)?a:b这是条件运算符的基本例子。 $ d1 t+ ^* X" j5 Z- A7 V( {
2.程序源代码: $ w3 _% g+ n" i/ I
main()
+ m" G" j5 e& _3 e6 V; g0 p: o{
) a7 j) H. {9 O+ u( ~7 gint score; ! x6 |. I+ z5 K5 r
char grade; $ o" l! A; Q3 D+ X' [" Q( @4 K9 X
printf("please input a score\n");
6 C: O8 B- W+ z& r3 fscanf("%d",&score);
6 X6 e1 A) V9 O) Tgrade=score>=90?'A'score>=60?'B':'C'); & d5 C# {* I* T- F3 n" C0 a
printf("%d belongs to %c",score,grade); ) S+ D7 G* ^& E* x- I2 p" U7 y
}   N5 {0 [1 C3 v7 I
============================================================== 4 _0 O, R8 i" M  `' x

7 ^4 y: f' ^' @; M( S0 k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2025-2-1 06:57 , Processed in 0.056488 second(s), 33 queries , Gzip On.

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

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

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