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

C语言算法6-15

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
【程序6
6 Y, g: h/ O! V( i% o+ Y题目:用*号输出字母C的图案。
. E$ _% G/ [4 |% J1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。
0 V3 A6 `/ d$ V8 v  V0 g2.程序源代码: . d+ K" I6 t& `% M
#include "stdio.h"
8 m* G7 [% m" W/ x- J9 C6 `# u  e# @main() { * \5 r  o; @1 p" G6 _9 x: E! k) }
printf("Hello C-world!\n"); % v3 g3 y5 r# [6 x1 ?0 F# t
printf(" ****\n");
) n. c4 d$ Y  U$ G/ Q5 Yprintf(" *\n");
& a* B4 h. Z9 w+ i* O# I8 qprintf(" * \n");
; a" a% f% P% ~4 ~( f4 x& u# ^8 ~printf(" ****\n"); } . I6 h; t$ ^7 ~7 p
============================================================== & C+ E- u. T5 h
【程序7% N1 {7 u, w! ]  `% z
题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!
2 w% I7 R, h' f6 d: [9 r! J1.程序分析:字符共有256个。不同字符,图形不一样。 $ K1 y  V1 y, h+ K+ C% ^
2.程序源代码:
8 W, Z3 \" l, |- c  o& K. J#include "stdio.h" 2 v6 e* w* o4 X1 I1 I
main() - G5 _7 c/ _# R# O) x; |1 l" X
{ 9 E9 {! S6 _- @) f& S
char a=176,b=219;
+ B4 N8 i. e# }9 u6 {8 ~8 lprintf("%c%c%c%c%c\n",b,a,a,a,b);   u, P1 q8 `' G/ @$ s4 O
printf("%c%c%c%c%c\n",a,b,a,b,a);   p. P7 [2 \5 w# Y; O7 n
printf("%c%c%c%c%c\n",a,a,b,a,a);   \/ h) C6 Z$ x' G  F8 P# P
printf("%c%c%c%c%c\n",a,b,a,b,a); $ R  F- V8 U0 F. |& ~: m, y5 W
printf("%c%c%c%c%c\n",b,a,a,a,b);} ! G+ L# P+ Q  ]
==============================================================
& U/ g9 w& I& X$ O1 d  d( {【程序8
( `% b% k; ]' J3 c题目:输出9*9口诀。 " Y' O% A3 _1 x  {7 k: f% o7 |
1.程序分析:分行与列考虑,共99列,i控制行,j控制列。
7 G0 D% y& m; l" n# \2.程序源代码: 7 s/ X. I1 X8 |/ O, I( A' M
#include "stdio.h"
: h% ^+ j6 h, n/ J9 f$ N, fmain() & m* b. F" w, D9 B$ c4 P' l
{ * R; E6 u  B/ ]7 U
int i,j,result; $ d3 h$ b+ m0 P5 N7 }' P
printf("\n");
. a; g! ?5 S" D+ ~% mfor (i=1;i<10;i++) 4 n+ ^# r  h3 ^; W: e0 g
{ for(j=1;j<10;j++)
$ Z" E, @: T2 y1 {. C{
% n6 Q; {* e. d$ o- v0 hresult=i*j;
7 X1 _# R+ J6 g7 ?7 f" Hprintf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3*/ ' |1 N9 [: a1 w6 E" R6 w
}
& B$ {) W- E* }- B& Iprintf("\n");/*每一行后换行*/ & U/ J# M$ Z4 Q8 j
}
0 z. Z4 z: W  C- q9 B7 T; j}
1 A8 ?* a6 n8 N- I============================================================== ) ?" Z' w( Q) L3 e) p
【程序9
% o; s4 {! f- p) S) |题目:要求输出国际象棋棋盘。嵌入式学习企鹅要妖气呜呜吧久零就要)5 i; |' u7 v6 [0 a, L
1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。
$ ~7 y* r& X! \1 I& Q4 {2.程序源代码:
  ~* g9 T0 {6 W7 y0 R4 O$ D  q+ r#include "stdio.h"
* f8 X! F5 X3 f& D) V& G8 dmain()
) i* u* ?" P: A9 ?9 p, B{
; }4 y3 X4 F, m+ jint i,j;
+ C" @. ~$ q1 k- zfor(i=0;i<8;i++)
+ c7 G1 ~7 \$ ?. I' ^5 F{   |( x+ }, K0 S! {' v, y
for(j=0;j<8;j++) ) [6 J4 Z% P6 m5 ]
if((i+j)%2==0)
+ s( k1 O: ]$ @$ h) dprintf("%c%c",219,219);
! z+ W4 f* @; S5 j" h5 gelse   ?4 ]! y$ O6 c7 E- b# T
printf(" ");
8 h( G: Q: P9 B4 qprintf("\n"); - s' _: C( }/ {0 k9 w7 N% }
}
5 U4 D; d4 _1 T3 U' w& l; l}
' M: ]: J( g+ _- [==============================================================
2 ~3 r- o# `* E( t" ?2 r) T' q【程序10" b% ?. R$ a& f5 j* U9 z  d
题目:打印楼梯,同时在楼梯上方打印两个笑脸。
8 A8 H/ W7 [* [/ @3 m0 {7 m- i1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。
) {4 t& ]5 L9 l0 R7 ?2.程序源代码: 1 P$ W: B6 O! {/ v+ U/ A, \
#include "stdio.h"
" f2 n$ d( H% @2 |) U. m+ o: Kmain() ! R( S# F! F6 j) T2 h4 Y
{ + i1 Z" H3 @7 x" P( o+ q3 C
int i,j;
7 E8 `  c: I6 t* [8 _3 A* \/ lprintf("\1\1\n");/*输出两个笑脸*/
3 o+ s% x; q+ \for(i=1;i<11;i++)
2 r: ?% N1 ]0 ~2 h- m{
* u: V/ B5 l/ L% n; X0 u' lfor(j=1;j<=i;j++) 9 Q8 {0 l7 o5 K/ l' B0 a
printf("%c%c",219,219); - [9 m) o" y1 O- N4 ?" _
printf("\n"); 6 X. o5 x) M  E1 y
} 4 @, }% f8 l/ _' r' {3 ~
}
& v; n5 J+ S2 X1 N8 }# a. g
& @+ \+ u2 z2 ^* B2 ^& Z
; p# I1 B: u' P
! A( f) `' y4 g$ d6 G. M作者: zhlei81 2005-1-22 11:29 回复此发言 + }  P2 q6 V. K: H0 {" [" J7 s
) t. z; p& ^% Q& ]
-------------------------------------------------------------------------------- : G' H# Y0 ~! Q2 Q& |! k6 k
& L1 [, ^& o) v) P6 U
3 回复:经典C源程序100" e% }  D' w4 P) l+ I) f" I
【程序11
" s" r- Q* V. [- _; x题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月 $ @( Y* O3 ^: q/ b8 g
后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
" n) M+ n: @% ^: X# O" R$ ~: p* S1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
3 t( Z. V% i! z0 [2.程序源代码:
/ |/ j" D2 ?* Mmain() ; Z/ j9 B4 T: B1 q6 i8 g
{
  A* n4 I9 D6 `8 b# N& N$ w' Y6 ilong f1,f2;
! t; N1 {- A3 U6 q" r% h. V$ M. Y7 `int i;
, o' R) F. k; H# M7 ~f1=f2=1;
2 V( C5 X6 J# h# Y+ Ufor(i=1;i<=20;i++) : B2 v0 X6 x4 t  a/ q& d4 \8 d0 z7 J
{ printf("%12ld %12ld",f1,f2);
1 |/ O4 ?7 U2 V$ S6 R8 jif(i%2==0) printf("\n");/*控制输出,每行四个*/ 0 @9 |9 y6 N1 Q6 P& ]- g2 P3 L) t
f1=f1+f2; /*前两个月加起来赋值给第三个月*/ ' [; }- M3 O0 M
f2=f1+f2; /*前两个月加起来赋值给第三个月*/
: J5 r, p2 L# e. ^& T} % g+ b3 e; r! B) m0 u
}
5 V" G  X% V: }* q+ c- P============================================================== ! y' m+ ?) W6 k
【程序12) v2 F8 T* W3 {* Y8 {
题目:判断101-200之间有多少个素数,并输出所有素数。
( x: U: [8 `% B  \1.程序分析:判断素数的方法:用一个数分别去除2sqrt(这个数),如果能被整除,
( g8 v3 {2 d. r5 O" W, e, O7 C, Z则表明此数不是素数,反之是素数。 : F" f1 s; T+ E$ Q2 e
2.程序源代码:
- i+ G: U  U( F( g/ w$ U#include "math.h" 4 c- ]( ^6 q% v# w
main()
0 @% H+ V' m4 Z) m{ % J7 C& z3 t. h- L. c
int m,i,k,h=0,leap=1;
: ~9 I2 H) O1 |! u- ?( \printf("\n");
- l# _6 p& j+ Ifor(m=101;m<=200;m++)
1 {# o! ?9 E' u6 f{ k=sqrt(m+1);
% N4 E1 G  A# r9 P4 d; R  O! o5 Tfor(i=2;i<=k;i++) . ?7 T* I; h+ Q, @( v. Y5 e
if(m%i==0) ) l2 y# _. k* {/ ~3 a; j9 L
{leap=0;break;} . e# T! q# N( C+ q
if(leap) {printf("%-4d",m);h++; # C4 @  L6 s' h, I& }8 v" O
if(h%10==0) 2 ~& ?7 g2 ?5 ~3 ^: _
printf("\n"); , b$ z6 t0 P6 m9 C- O
}
" X  |8 {! L" k4 u8 N* ^leap=1;
& U. ]3 {  U+ \4 ~: N! P* `8 A} , V( y( m  n3 Y4 [) M( i' t
printf("\nThe total is %d",h);
; u3 W" ^: @6 d& s} ' B+ E1 x) B4 T# N
==============================================================
- G) T7 j" ^6 }1 k! r2 V/ O【程序13
4 l9 A' J- ]9 S' ^/ I题目:打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数 , n4 `2 ~$ l  K0 [- K( i
本身。例如:153是一个水仙花数,因为153=1的三次方+5的三次方+3的三次方。 ' S" r: ]; H7 U* j% I0 Q
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 - L' i, {8 w7 h. I
2.程序源代码: : p: e* A3 ?$ P3 D7 _( R4 ?* n
main()
! N' a6 o, p/ [5 T, Z0 @0 q; }' {{
  x8 b% o# z1 X* gint i,j,k,n;
. V% q0 P- t( g0 n6 fprintf("'water flower'number is:");
1 U( ~$ Z+ t- b& s9 c) Cfor(n=100;n<1000;n++)
& h2 p3 K/ E( X. H1 Z3 K{
' O! }" v. q/ T+ b4 ^, j( ni=n/100;/*分解出百位*/
5 K  s/ v9 d- H% uj=n/10%10;/*分解出十位*/
+ ~7 [! [" V! l) }4 i( Gk=n%10;/*分解出个位*/
" n2 f" E9 ?* n+ d0 l3 n" y+ a- }if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) 2 v2 H: d3 a- |' S4 w* a% Q
{ , b) v+ [- @8 i: T
printf("%-5d",n);
7 c1 D3 j% t6 O  \3 E( l}
" V* n* }* L( U' r0 ^: `} ! |0 I* o( T% T( F& W8 `
printf("\n"); ) c* p0 g. t0 V& T- |# F+ Q0 z
}
( Z$ t. f, P: ~) e& m+ `============================================================== 0 [7 [5 y; q8 w' y4 X' G$ [- C- b
【程序14
$ H- P  S0 B& j4 K0 D6 g9 |题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5- C$ E1 K, a8 R
! w$ W6 g! b! M+ m: |
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
: R1 J2 f1 t8 p/ \6 [. U7 _(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 ' F& n% h9 z2 l. u
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n, " g/ l/ m9 Q7 ^4 o# f! y
重复执行第一步。 % i5 y6 ~( j2 M! A6 G  [2 Q* U6 O
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
) d3 O8 D& z3 f/ [3 {2 ^7 O% H% h& @# F* t
2.程序源代码:
$ B# v( {* I* ~0 X6 \1 j; F6 D2 L/* zheng int is divided yinshu*/
3 I5 B- c4 \' C5 q& O, K3 t# ], ?main()
7 N, ]3 v5 }; _/ U- E+ `- q% U! E{
. {1 C7 ]; c  n* F. P; Wint n,i;   |; f+ O# a0 m( O. W# b. ^
printf("\nplease input a number:\n"); & @- w4 s" J) g
scanf("%d",&n); + m  z8 Q  G0 f- r! }( \
printf("%d=",n);
/ g" m$ \+ [$ A/ O' Q9 y2 Ufor(i=2;i<=n;i++)
& h3 |. ^, t; ?  Y# E{ ! p5 i: _& j7 p8 M* d
while(n!=i)
. G- B7 b3 \. c% h+ p& e{ 8 p4 ^7 o/ k1 T( g' z
if(n%i==0)
$ c4 u& }9 K' [{ printf("%d*",i); ! }+ ~) J0 R# }9 t3 o; N; K
n=n/i;
# a6 T2 G' O# G} + M9 H+ c  a6 H" M8 E& L) v5 e
else
6 \0 f* w1 \* X$ K1 M- x. r8 pbreak; * r. U2 w4 ?" X% g: b; D' S4 Z
}
( D, m* a% _# J8 b6 q0 V! R. k/ d}
7 i2 G2 g% m* W2 c1 G! _1 ~printf("%d",n);} % M  Y  u3 x6 v. m
============================================================== / k- q. s' ]7 k
【程序155 t% d: q$ f" {1 x; J
题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示, ; K, N8 ^. c  x9 o1 z
60分以下的用C表示。 ' C4 _6 X2 N# w7 u- g' _
1.程序分析:(a>b)?a:b这是条件运算符的基本例子。 " ]  U7 x5 v- h- ]/ k
2.程序源代码:
/ w( F: z8 |. pmain()
' }$ y/ x: v/ D- q$ @! R{ / [+ D$ W  o. K* d* z  ?6 {
int score; ) m: k$ u9 I7 p8 U% M! {# m
char grade;
9 `) Q4 l4 t  N. w% ]/ N3 ~printf("please input a score\n"); $ g8 v  ]! N1 V. a$ r
scanf("%d",&score); 4 N' c" U6 r* \3 \
grade=score>=90?'A'score>=60?'B':'C');
- M4 [# h, \% J( ]8 `printf("%d belongs to %c",score,grade);
! ]4 K( ~) t; z; O) Z}
3 ~/ w. q5 H+ n9 }: r, j; O============================================================== 6 v1 c, [/ h3 s" q

7 E5 x" N: S: a
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 14:51 , Processed in 0.187500 second(s), 24 queries , Gzip On.

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

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

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