机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 2382|回复: 0
打印 上一主题 下一主题

C语言算法6-15

[复制链接]
跳转到指定楼层
1#
发表于 2017-10-5 16:43:28 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
【程序6% j6 o% j, W1 i- w" K  H% d
题目:用*号输出字母C的图案。 - {+ _9 \9 e2 o" P' J! S% O
1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。 " W! C. k0 z* `4 m* v2 @
2.程序源代码: 0 k7 N/ @, V0 D
#include "stdio.h"
" o; C  l0 Y7 Z4 e' Y1 U, O$ hmain() { 0 J' S- E. D. U4 o4 E$ h) _
printf("Hello C-world!\n");
* u$ @$ F" p0 S) ], Jprintf(" ****\n");
% N7 W% d- h+ w  dprintf(" *\n");
4 G$ `5 M6 w( ]  l% y; U9 Nprintf(" * \n");
5 O- ~7 f- x; v8 u, @* H" h. kprintf(" ****\n"); } ( ]4 Z) [1 E; x+ R) k
============================================================== 1 y) y! D# V' w4 u
【程序7
+ \! T- l3 F% a题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!
# n: w/ o5 Z  q* _1.程序分析:字符共有256个。不同字符,图形不一样。
! K4 I( k: f! e9 D2.程序源代码: ; J+ a3 Q5 O: [. [; }% q3 p. j1 O
#include "stdio.h" ! r9 M6 i: g$ y0 @
main() 1 x+ `: h! r8 i6 p% V
{
2 s* b- E7 M% T* ochar a=176,b=219;
1 {8 U  j8 ^( ~6 s( w4 @3 xprintf("%c%c%c%c%c\n",b,a,a,a,b);
5 H8 q; ~% j! q8 G2 N) Vprintf("%c%c%c%c%c\n",a,b,a,b,a);
6 q5 X3 w% B( v) T4 n/ N4 Cprintf("%c%c%c%c%c\n",a,a,b,a,a);
% L8 d5 A* [  \1 q6 _printf("%c%c%c%c%c\n",a,b,a,b,a); 8 ]" `+ A$ l- h
printf("%c%c%c%c%c\n",b,a,a,a,b);} , D! f4 H% y: ^; z0 e
============================================================== ' J% o' [, s0 X; \5 I; C, e( |
【程序8
4 A/ H5 p+ ^7 I$ n6 c2 L0 ^% B题目:输出9*9口诀。
! @  |/ C! z8 r; k: N1.程序分析:分行与列考虑,共99列,i控制行,j控制列。 : ]2 k$ o7 K* q& k" P4 F, g" {
2.程序源代码:
% p$ N# y. }* o#include "stdio.h" 5 L" k( \6 Y) ^2 z" v
main() # P8 Z' b  O# P9 G# Y# E+ x
{
0 e) E  ~1 T+ R% r' Q5 A# f! U) Oint i,j,result;
, T, G0 r; ]7 R4 O6 a* x' }* W7 jprintf("\n");
/ j% t' }; c! z! Z% A- l- Yfor (i=1;i<10;i++) & O6 V8 D; h5 s$ ?) J
{ for(j=1;j<10;j++)
& e) P6 W% x+ D{ ( y1 d- C: K, j+ n
result=i*j;
* C" x% q4 M. t" V, W, `7 `- E) Vprintf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3*/
+ u/ }5 s0 k/ e2 Z3 \& e} 5 {, z; y% T% X- O/ D* o
printf("\n");/*每一行后换行*/ 7 H8 M. k0 C) t1 f" ]
} 7 L6 _* D, C0 r9 m3 W+ M3 U
} ; h, B3 w2 b2 Y9 Z+ l0 ]
==============================================================
. k' ~2 d" H% y5 J3 m3 w( ^& u2 w) _【程序9
5 U0 \) |9 I2 F8 u  W题目:要求输出国际象棋棋盘。 (嵌入式学习企鹅要妖气呜呜吧久零就要)
" i: t% {5 a( ^  \$ H& o0 L, K1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。 5 V" Q$ A0 s/ z% j1 L5 e
2.程序源代码: ! ?2 D& a4 L) |! n% \7 s# o) r% N# s
#include "stdio.h" 6 n7 [) A+ O7 v  |5 K6 N5 F
main() ( i" R5 ~* D: b2 `
{
% Y4 r. A0 e& }6 V$ j8 A7 w. aint i,j;
% Z0 x; Q( K# Ofor(i=0;i<8;i++)
5 c* }! N) B1 c+ N6 Z{
( H9 G! B3 E' v* a% W9 I+ r# bfor(j=0;j<8;j++) # d3 P; f  X, b8 Z  M' l) }! K0 D
if((i+j)%2==0) + y4 I) P5 d  f  p; A  B0 v
printf("%c%c",219,219); . u6 k  a7 k; ^9 Q
else ; ]; T3 ?4 e: _% d/ j/ ]0 l( s) i
printf(" "); 2 D8 Q8 u/ M: k4 X0 \
printf("\n"); # f' z8 p( g) C& W- K) a9 e% |) m
}
5 o# \5 x- k* t5 d} + O9 X- b5 r5 I% u. D: s
==============================================================
0 Z5 V6 C) t# u3 w+ _3 L, y% ^【程序10
6 {4 J' M- b" r( t+ }6 G) ?6 a* Z题目:打印楼梯,同时在楼梯上方打印两个笑脸。
0 o/ _; P7 B) `! O6 @! I' r$ v1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。 5 K5 W+ z2 a) m% s6 m
2.程序源代码:
+ {4 p0 U: @& a' f( h& m) F#include "stdio.h"
; H# ?, `9 C) e0 [$ b% ~! hmain()
  h+ z0 l) ~" y* L" q$ [3 t' T: p{ # h! I4 i* W: L" C  M. I$ c
int i,j; / U9 }# r, D4 d! `9 A& p9 v5 V
printf("\1\1\n");/*输出两个笑脸*/
4 t4 |9 d% J, y7 ffor(i=1;i<11;i++)
/ D7 R7 L9 i7 B1 Q$ x{
$ {, k, r- S) Q: }% }for(j=1;j<=i;j++)
  H3 d9 P( X2 J$ j- b5 h& ?7 k3 Cprintf("%c%c",219,219);
3 ?8 v# |' A* l& \printf("\n");
4 z3 A5 C& N9 k( ?1 F& l3 X} & L# J7 f- o0 r3 Z
}
  m, H; f% B4 @) M1 x) y* u
$ c5 r0 _6 O8 t7 s' ^- f1 q2 h6 X/ M
( S1 K8 k" d& ?$ B3 r
作者: zhlei81 2005-1-22 11:29 回复此发言 7 Z. v  ~: V+ e) m' R) e
+ i2 y* l; o1 R# m
-------------------------------------------------------------------------------- $ Q3 p2 b# M- r( U( I6 u8 ]. c3 R

9 C+ e/ V3 \2 q* q8 z3 回复:经典C源程序1009 a6 x6 f& t  ?6 F4 N/ r
【程序11
' G1 z; g, c% n+ ]" N9 ]题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月 ' Q5 J1 Q7 r2 o' P. Q+ v6 l
后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 0 H; `4 Z1 v6 X7 W
1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
9 ]! M. P1 `8 z  y2.程序源代码: 1 E# E3 d$ {: C( J0 y+ V9 z
main()
* G) d1 B8 b6 }& t( t' K5 a& n. ]# n{ ' |4 @, `2 Z% I# d
long f1,f2;
! r& I0 B& ^' Dint i;
% X: X1 e3 R. r8 o9 c0 L2 Lf1=f2=1; 1 ?' r9 ~0 F$ |& F% J, t
for(i=1;i<=20;i++)
, c1 C5 A* J. F/ A{ printf("%12ld %12ld",f1,f2);
  B4 k7 W/ {7 e' xif(i%2==0) printf("\n");/*控制输出,每行四个*/
3 I0 ]9 d( U- p0 Q8 ^- wf1=f1+f2; /*前两个月加起来赋值给第三个月*/
8 F7 Q# c! J* a# M0 of2=f1+f2; /*前两个月加起来赋值给第三个月*/ , C" d8 G7 q! p  f3 ]2 s/ `+ [
} 1 K0 |+ S* ~* |# j4 N
} # b/ |+ i0 r9 c" L# |# i4 S
==============================================================
5 k$ H5 F$ M6 u4 B8 N9 |/ f6 h# W【程序124 @  h4 l' x! ]% y( b' y' A( g
题目:判断101-200之间有多少个素数,并输出所有素数。 5 }& k! z6 f$ t
1.程序分析:判断素数的方法:用一个数分别去除2sqrt(这个数),如果能被整除, - ^4 J  D1 ]- F5 y. A& ]" \
则表明此数不是素数,反之是素数。
6 _; Y$ c# O( [3 X! o2.程序源代码: ( V9 l! O+ f0 N% V
#include "math.h"
0 f( [' f& a5 m; s/ ~main() 4 [; ~5 _- c* w% t& {1 H! b# ~7 f
{ # c+ n* u) Y! @- M+ C
int m,i,k,h=0,leap=1; ; C: p& n  v$ Y  f" B
printf("\n"); $ `5 Q. K/ q' O3 @! n
for(m=101;m<=200;m++)
: A" D$ |. f- n# o! W9 T7 e{ k=sqrt(m+1);
% c6 N. G- _  M7 wfor(i=2;i<=k;i++) 6 L: E7 g1 N! w& N2 @
if(m%i==0)
! [. [3 {# X8 b( X) L2 C$ k{leap=0;break;}
3 w2 \7 F2 n+ b3 Pif(leap) {printf("%-4d",m);h++; 6 a5 t' I8 `! g" y- ?4 r
if(h%10==0)
, i& f5 w: Z5 `printf("\n");
( S8 {; r. K! J) o( @9 F: H" O}   ~3 C5 e) k0 g$ V
leap=1; : m- {  H$ R1 C$ z. `; r: p
}
- W! w2 L& d1 _+ yprintf("\nThe total is %d",h); ! s1 V4 ~; \" `6 t: C  \: V5 ]0 o
}
3 h0 \4 ]3 ?# C$ c7 l* ^==============================================================
! N) w% D9 i& A3 y" d【程序139 ]1 W5 v( }! j5 \3 o- s0 ^6 w
题目:打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数
  t- p7 s$ w" p9 @/ w6 Y% p本身。例如:153是一个水仙花数,因为153=1的三次方+5的三次方+3的三次方。
* G% x$ v/ e* ~+ o" V2 s/ P6 S1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 0 q+ b" D5 m1 y6 \% `+ R$ I; h
2.程序源代码:
5 h! ]0 M" w/ c6 l7 vmain()
: |7 A5 P: N6 S8 ~{
; M0 I! [; F0 C$ O- z1 j! eint i,j,k,n; # C/ S6 q0 G5 b( w, N- w
printf("'water flower'number is:"); " r: n) A# ]; w; X8 b. H1 K
for(n=100;n<1000;n++)
: M! t% b9 o1 T( N9 ]# \. F{
8 L8 T- O- d( P% E( u& c9 ~% ki=n/100;/*分解出百位*/
( h5 z8 J& _6 g- Bj=n/10%10;/*分解出十位*/
# ?# e  L  g  u" hk=n%10;/*分解出个位*/
8 Z) f- Z4 \5 oif(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
0 ]0 j: {  l- X{ ! |2 t/ a  U, D1 i
printf("%-5d",n);
% _# [6 o/ H5 _} / u- z) k/ _& H2 t9 _# ^
} ; y1 ?8 u# g. V: d. l
printf("\n");
4 \9 O3 R3 z& f1 @2 o) s}
: D1 V! [: ^& {9 |+ K- P==============================================================
# M! _6 j- i  u【程序14& J) x! h9 F1 f( p$ R8 @# ]
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*55 u! }7 I! @, |. f) F  L

6 ~1 @7 N* L, [% {# w7 _, a6 H程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: % V. y+ T0 w" A4 T
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
! P: K! s8 a" a! f. Y& w" `( R(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,
+ [9 J7 J0 ~& U6 c# M, J重复执行第一步。 3 ]6 ?0 T" S8 t1 |- R4 ~* Y0 N
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 # c- E' K  A% x# O& ^, w3 {! s

3 ~, A5 i* _& v7 n2.程序源代码:
3 D' d, `4 N4 b6 ?9 t6 C" a# H/* zheng int is divided yinshu*/ 0 }: ~" S/ @% z8 k, c
main() * ?) H% o1 S) z0 Q4 _; Y: [4 W7 N
{
% P. G& {" B/ n) K( ]int n,i; & S# E# E. u! b3 p- A7 J# }
printf("\nplease input a number:\n");
7 [" [! Y  \- n8 ~7 p0 `8 Y# r: wscanf("%d",&n); & E  r7 r  z& Q& w% @  _
printf("%d=",n); 9 s$ y3 F; B" B6 [+ p) ?
for(i=2;i<=n;i++) + Q! ]0 n5 I# y
{ - }7 x0 v1 E: N. t
while(n!=i)
3 @% E! Z' m! O; [# k, }  A4 _{ , s: M4 C8 \6 C+ e
if(n%i==0) ; Q: w! `: ]9 g5 \- }
{ printf("%d*",i);
6 |% W! V1 |4 t# W$ Dn=n/i;
: b. q& X9 z( O6 n/ w7 k+ Q# e} * i1 v. w+ a0 K9 ~9 s; H# b0 [0 r
else
3 t- p: ]* A2 o* E/ G/ i) m. Abreak; * m6 M4 J, a5 `7 ]
} * e# @+ P* g3 n& G/ \' R
} / u, |: C; Q2 I8 y
printf("%d",n);}
$ T/ a0 t  `+ i, \==============================================================
% W6 y; E( C8 n% F8 L【程序15
" i: {/ A2 R$ x9 j题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,
) Z/ a, n' A) f  g( G3 R60分以下的用C表示。 - J" }4 {6 B+ [* c5 _3 L) Z7 {
1.程序分析:(a>b)?a:b这是条件运算符的基本例子。 - c+ K! H+ r3 Y; E) c) w" E3 H2 u
2.程序源代码: % [4 y8 ]5 ^9 k) A" A. ~$ [5 G
main() ( L/ ]/ M) O& \. h
{ $ h6 R+ Q) F+ U+ p, V
int score;
5 x" z& `. g% l1 tchar grade; + c; J5 I" Z0 x- |5 N/ T
printf("please input a score\n");
0 J: R, {, Q' g% m5 nscanf("%d",&score);
! i2 Q9 A2 O0 E4 t8 c: qgrade=score>=90?'A'score>=60?'B':'C'); . F# f6 s+ N/ A; p8 l7 w( e! L, D
printf("%d belongs to %c",score,grade); 9 b1 z. `+ ]: x; P  C5 V3 l7 V
} 1 ~: {( c! Q/ z! \! m. f3 w% M
============================================================== 0 @/ L$ V$ c. a! V$ Y" A! W

5 H# @/ q' A4 v8 k
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

小黑屋|手机版|Archiver|机械必威体育网址 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2025-1-12 03:17 , Processed in 0.051974 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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