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

C语言算法6-15

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
【程序6
1 T3 P( Q  H8 A  f$ Z题目:用*号输出字母C的图案。
2 P8 C" W! k4 n8 y+ H: P/ d1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。 ' x2 R0 ?7 I; v5 M
2.程序源代码:
- y# @# J2 b+ u* X#include "stdio.h" * |; U% w; i9 y" C( A& }# l
main() {
  {6 d" j8 F4 Jprintf("Hello C-world!\n");
7 k2 y6 o- q! [printf(" ****\n");
% o( V% M$ |9 X% W9 @3 B0 ^printf(" *\n");
/ v" |" n; v3 K+ i8 o: mprintf(" * \n");
( I. |  a3 R+ `printf(" ****\n"); } $ Y0 s) E& A" P  b2 A# I0 M
==============================================================
" G! w" T7 J  I: L$ m/ E【程序7
5 w/ ]( W  B$ e+ c# g题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!
) z! A: z4 F# o  `0 \8 k1.程序分析:字符共有256个。不同字符,图形不一样。 4 ?' H0 V2 g) l6 p5 k9 w0 N) p
2.程序源代码: 5 T" C9 ^. d3 k+ H
#include "stdio.h" 0 w4 }( R+ v- U2 T) B
main() 3 ~. c& [0 X8 e
{ # |) t# P! \& E8 a4 x6 `
char a=176,b=219; / u# o$ p8 f/ }% ]
printf("%c%c%c%c%c\n",b,a,a,a,b); * a; S! I* w. \
printf("%c%c%c%c%c\n",a,b,a,b,a); 1 x% N! z5 W; A& C9 q* N% q
printf("%c%c%c%c%c\n",a,a,b,a,a);
9 Y. V5 K; p8 t5 J  _7 uprintf("%c%c%c%c%c\n",a,b,a,b,a);
  g$ ~' `' [  a3 }; G+ q3 kprintf("%c%c%c%c%c\n",b,a,a,a,b);} + Y% J2 U4 R( P# p
============================================================== , N7 `9 q4 i; `/ S3 w
【程序86 O4 q% \4 ]; X! K) }8 z
题目:输出9*9口诀。
& @5 x' Q! A7 e% o1.程序分析:分行与列考虑,共99列,i控制行,j控制列。
: m7 `# K9 t- P1 o2.程序源代码: & m. k2 q9 R, W, D
#include "stdio.h"
9 h4 \; [5 Y0 ^main() + D+ Q5 f% h2 @5 H* O* o. p
{
; }! O$ S2 _- }int i,j,result;
, t$ N7 r; r# Z, z8 \* Kprintf("\n"); ' w" v1 I7 W% a$ W. j0 t9 T
for (i=1;i<10;i++) . F6 `4 `1 o8 Q' `  F
{ for(j=1;j<10;j++)
% }) s+ Y7 M! ?+ v0 x; [{ 9 b% f: }/ O$ `$ X
result=i*j; # n9 Z6 i3 e: ^4 E9 e9 X
printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3*/
) A; \, z6 _! U5 L1 T+ a5 ]) b# f}
/ }% e3 t: f( j; _" Vprintf("\n");/*每一行后换行*/
" G# T+ O) ?- e4 `% _3 k: y) l8 H} & b: Y/ |; b' Y( v% I
}
2 W0 s& z5 p1 [. P' n==============================================================
+ s: v" E* W) k6 I. i【程序9
# N5 }+ X4 ]" U% a题目:要求输出国际象棋棋盘。嵌入式学习企鹅要妖气呜呜吧久零就要)- K9 s3 y* T) s* N
1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。
) ~0 w. \0 n" S2.程序源代码:
8 a! x0 S: n1 `4 e, v#include "stdio.h"
! x# f) ^! j4 y7 nmain() 4 ]+ d4 ]' [9 `
{
0 {# q! M- V$ f" F( @int i,j;
9 h2 _% [- A1 `for(i=0;i<8;i++) 8 u! u4 d5 O% Y. B0 W9 F
{
- J7 q% t% j0 O( ]$ @4 D: f! J8 |( kfor(j=0;j<8;j++)
! U  {, C! f6 ?* I4 J) x6 r' U! Tif((i+j)%2==0)
2 a' f& m; w0 A) C: B4 X" sprintf("%c%c",219,219); % A  C5 U2 {4 k- `
else
& L* |8 d/ H0 `& Y2 Wprintf(" "); + u: k' S: r9 e( H) \) T# W& A3 U
printf("\n");
& k2 D- Y! E/ F}
% Z5 S4 F* I1 d: X4 ?" i}
* E  Z* \0 u' M==============================================================
' n* I2 u! `$ \5 M) j' q0 Z* f4 t【程序10
1 d+ w0 {. T, o题目:打印楼梯,同时在楼梯上方打印两个笑脸。
* M+ s+ H* b2 ~6 Z1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。
2 P; C- p2 a9 E2 q0 n4 Y: x2 G4 p2.程序源代码: 6 D! }, j2 a( G) `5 J
#include "stdio.h" % y0 ~/ e) P+ u9 t2 l7 [
main()
, z' v( t% ?7 J( N, V8 p{ . j0 K9 o& W# H1 Y+ C) ^& a
int i,j; % L" y. `6 C4 Z" b, P8 s8 m
printf("\1\1\n");/*输出两个笑脸*/ $ ?5 J2 K" }8 f9 l! o5 m8 c
for(i=1;i<11;i++) & A% u- E  R, ?6 H* \' s
{
- ]. R, q. R- Mfor(j=1;j<=i;j++) ) @0 b/ h& _! s0 i: p
printf("%c%c",219,219); 8 l# g- q- Q! s
printf("\n"); 8 |; k2 v# p7 S3 \
} " p3 @" G  K, D' J- u
}
  J' Y' m0 ^" V, K9 N) {5 u& |
5 K% H+ j* H+ I1 p1 p" ?; Y' c  \
; d) s" B- ~: A# i: W) c" y
. A' M9 k- M+ R$ X. ?作者: zhlei81 2005-1-22 11:29 回复此发言 ' y& J" R9 `. h0 r. Y
5 r' {+ y0 P8 w1 p& w' r  t2 \
-------------------------------------------------------------------------------- 8 f4 g, L" \8 u( x% W. k5 [7 J
5 b8 X; p7 M* V$ K7 X
3 回复:经典C源程序100, Q( r; z/ q& P" _) i, u) W0 |
【程序11
8 \- h0 Z7 Y* g6 N3 ]题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月   }! x, H9 |; ~, d9 E
后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
2 i  d% O4 K% g# v; j1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... & ~. ^* e+ T8 t( p1 |' A( R
2.程序源代码:
+ m; e" a4 o/ A- y  [" b% B9 smain()
$ \9 L0 X# s4 D6 M5 j# X7 u# L( q: i{ $ F/ z, [4 M) Z, e7 |! p, e
long f1,f2;
$ q  |8 L. E) a( k9 S  p. gint i; . ?  |; J  ?: a! l
f1=f2=1; 6 g  B$ Q( s& f
for(i=1;i<=20;i++)
& [+ j3 W6 H+ M{ printf("%12ld %12ld",f1,f2);
2 p6 i1 M! i. D. f8 ^# ?if(i%2==0) printf("\n");/*控制输出,每行四个*/
* u0 |/ A+ l( H7 F8 pf1=f1+f2; /*前两个月加起来赋值给第三个月*/
) y/ w: H9 f! |( j0 o9 w! {f2=f1+f2; /*前两个月加起来赋值给第三个月*/ 7 H# N& B7 }: Y, ?1 v2 P% o
} ( H# H' r- l; \8 K9 y8 Q
} : `) P/ s  R/ z/ J
============================================================== : R0 g( U/ `9 [+ P
【程序125 t% O4 i5 z; f. N1 t
题目:判断101-200之间有多少个素数,并输出所有素数。
" ?2 o$ c8 b$ K: o7 Z1.程序分析:判断素数的方法:用一个数分别去除2sqrt(这个数),如果能被整除, + v( J8 Z9 a0 p. J& o8 ?1 x
则表明此数不是素数,反之是素数。 ' R, a. Z$ ?' }5 ~
2.程序源代码: 9 E" e# K1 n- S' `1 [7 S! o+ L/ c3 n9 r
#include "math.h"
# W) h/ z$ L8 ]  Dmain() 3 v6 D. V  r  M" a! j
{
# _0 c0 g: A$ N$ p) [+ r2 k2 |* qint m,i,k,h=0,leap=1;
+ X0 H7 a, }* a- H! ?& Fprintf("\n");
& Y6 O. Z7 {2 H2 H; A0 k; x5 Qfor(m=101;m<=200;m++)
- J0 E, X% s8 n{ k=sqrt(m+1);
( x4 V( M7 `4 T' {" N% F+ ]: G3 Ufor(i=2;i<=k;i++) - X& i$ c2 b* \* R" n8 y" P7 @) I
if(m%i==0)
" u$ b/ b; s" ~/ W{leap=0;break;} . D5 V( \1 o$ O; v8 {* \2 T
if(leap) {printf("%-4d",m);h++;
* m& C; I. N- l" {" p3 |9 Zif(h%10==0)
3 p% e7 Q1 o- O* c8 `7 B, v/ ^1 V4 Zprintf("\n");
3 Q$ Q8 C+ L. e} 2 |2 z5 N% F/ q9 v; P
leap=1;
4 Y2 [4 ^$ e! @2 G1 m4 K} 8 ?& a5 o/ r! _; ~$ m9 j
printf("\nThe total is %d",h);
3 D% q! g/ J8 l7 l}
! R5 v1 R. b' u+ f" Z==============================================================
# G. n& P* o8 W【程序13
+ \: v+ g6 l- Y% ]; b. m8 E题目:打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数 1 r6 F, ]( X4 T- C
本身。例如:153是一个水仙花数,因为153=1的三次方+5的三次方+3的三次方。
4 c. U8 [) }5 l- {! s9 P) w1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 4 S2 z5 L7 O5 v4 w
2.程序源代码: % b- }4 J- j+ y2 p: P% H
main() 1 X+ a( ^" E- S6 Z! l& l/ v
{ ( y6 I* ]2 j1 H6 m2 M; Q* N
int i,j,k,n; ' e% [' K6 T7 a0 h: G2 H5 V/ t+ L
printf("'water flower'number is:");
2 ^8 Z. v( j$ L" @4 mfor(n=100;n<1000;n++)
4 L7 e0 b5 \2 O+ m/ M6 E{ " a7 l8 Z- j. D6 s8 _& O
i=n/100;/*分解出百位*/ & y# [# E9 K/ K- y
j=n/10%10;/*分解出十位*/ / M) u: K1 ]9 C9 H, I0 d/ P2 O
k=n%10;/*分解出个位*/
8 u" [3 q8 X# s$ Y; r9 O+ @if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
* L& k6 T! Y4 B3 X- L# J4 _{ ! Z2 U3 F0 K6 S. H, h$ q
printf("%-5d",n);
- K+ G, C4 ?* }" K} ( z8 j5 s$ r2 _9 v7 K' r
} 2 j- j! N0 {6 _$ Y: y
printf("\n");
  T0 h) u. Z6 T+ P& ^- m  ^} 2 {3 y$ I4 w+ h! G  o; I
==============================================================
2 L9 `, G, j& e4 i" P【程序14; y) e) {% ^5 w  E5 o
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5
' z0 @1 ^( v( Y( }8 q" w# r0 p& M. f$ w4 X7 Z, a1 T
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: - H* X' }( [/ m' L9 R/ q
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
) ?/ {8 Q0 p2 k* x(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n, ; |1 D  K! y6 v1 b' N
重复执行第一步。 , r  D* e* f  S
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 % G6 w/ ~9 Z+ @: ~* F0 Z* r9 ?! P4 `

- S3 N; }$ h+ ?: K9 |6 d2.程序源代码:
- v- [1 l, U- G- @/ Y% [, a) r/* zheng int is divided yinshu*/ 3 [: }8 _3 C/ |% N- Z; ^
main()
. j% q- J, A4 J/ [, r% n& v+ N8 b9 F{ - e  o" |/ |; G: Q
int n,i;
5 @, f  b* j5 I3 D  x4 eprintf("\nplease input a number:\n"); 5 }5 J- G6 @# Y: h$ q% Z* t
scanf("%d",&n); 6 D( T* K, C9 Z4 T8 g4 V6 m
printf("%d=",n); $ |  g2 k! S% O+ H) F: U
for(i=2;i<=n;i++) ) L8 x7 Z- y! Z9 p  P) ~
{ * m. g/ ]  z9 t7 b2 e( A2 X* t! t9 g
while(n!=i) * e6 B$ d' }) X5 y% I6 k) [9 H
{ 6 k4 J% {0 Q# y- N/ P7 A5 D
if(n%i==0) 5 u5 l7 `) u2 P; l1 A, I
{ printf("%d*",i); ) q  h- G. s& [/ H8 J) x
n=n/i; % r+ r  i* }: R2 i, F: W0 w
} # S( j' M+ n# q9 G
else 5 M, Q7 U4 y* n. X" X" X% o
break; 6 t" l" O; l7 d5 o# S
} + |4 N& c' i' L7 o% q* `
} 9 q7 k3 J# L' X3 C% @! g
printf("%d",n);} 0 _! k; r& a/ ]2 I
==============================================================
! p6 I* S  h2 K! B* O0 m【程序15
8 n) H9 S7 n- K1 ^6 F题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,
# {6 i* _: z& h60分以下的用C表示。
% s- U5 n+ V& M" E9 l$ P% e! C. D* X1.程序分析:(a>b)?a:b这是条件运算符的基本例子。
; `( c+ b& R; W" i2.程序源代码:
. f1 F: T5 V! Q: f2 D  cmain()
" B- V6 o  N0 ]; a* P5 c) ~{ 4 ]6 F8 q& T" k/ {* c
int score;
+ |' U9 b! x2 x8 m+ B7 Q+ H* kchar grade;
, q: ?. ~$ o. m- H' r" h4 xprintf("please input a score\n"); * t) E# n6 _1 w* Z0 g# A$ B
scanf("%d",&score); 9 r' J% W8 w& S9 G6 z
grade=score>=90?'A'score>=60?'B':'C');
9 N( d, _) J% p+ o2 G9 x& nprintf("%d belongs to %c",score,grade); 8 ?% }. ~0 N" z  V
} % ~" b9 ]2 ~! _& ]4 I. K3 B
============================================================== 2 P; S  @( a1 x# S3 n: ?

- p/ C& q* A/ U
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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