机械必威体育网址

标题: C语言算法6-15 [打印本页]

作者: tainqing    时间: 2017-10-5 16:43
标题: C语言算法6-15
【程序6- W/ M1 A0 p' g3 ~
题目:用*号输出字母C的图案。
) k- \0 S' j9 X9 L2 B, A1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。
2 B7 z) @7 H2 X: d# j  A3 }2.程序源代码:
5 P( }! w9 n) }+ s" D2 F, Q8 c+ S#include "stdio.h"
, @+ o, f9 r  \5 U0 ~$ B/ `' Qmain() {
, d1 g7 r0 H4 t1 n+ w; eprintf("Hello C-world!\n"); ! `* }) e- i5 D, L' {" p
printf(" ****\n");
" k0 r% N- ^/ k. E/ a/ jprintf(" *\n");
+ m; A6 g6 M. H/ F: ]0 Eprintf(" * \n");
$ |) U4 {; g. N0 M; Xprintf(" ****\n"); }
8 i. k0 y3 Y" f. m==============================================================
$ V1 R& R) ^1 s1 `9 y6 j- d! l6 {. L( }【程序7/ x# q1 O: u) L
题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!
2 Q5 }3 y+ s- C3 X1.程序分析:字符共有256个。不同字符,图形不一样。
; {7 I! _% s4 b9 ~% f* B2.程序源代码:
5 `0 `9 Y5 L2 n#include "stdio.h"
- r/ ~5 O  T4 M7 |9 [  H' R2 D! C1 n) b+ rmain()
' ]7 z; ?0 j7 h" g{
! Y% _- X+ o' E; Y/ Mchar a=176,b=219; 3 I  @* l  D' ], d( r$ C
printf("%c%c%c%c%c\n",b,a,a,a,b);
+ Q& F7 f7 s4 _" T0 pprintf("%c%c%c%c%c\n",a,b,a,b,a); ! y4 `( v4 w, q- L+ f7 a. ^: z
printf("%c%c%c%c%c\n",a,a,b,a,a);
7 t8 p1 ?' ~1 ?4 T3 A* b* Y' Lprintf("%c%c%c%c%c\n",a,b,a,b,a);
4 I7 L7 _, L& X3 y. ^+ h& gprintf("%c%c%c%c%c\n",b,a,a,a,b);} / d& j5 D# x. u# M
==============================================================
$ g/ q. e$ C' o( p【程序8# q$ F3 F& e% P5 o, Q$ Y
题目:输出9*9口诀。 ) w+ k5 s) c1 h1 v: R! i0 d
1.程序分析:分行与列考虑,共99列,i控制行,j控制列。 + ^" ]4 f- f* R' @  J
2.程序源代码:
) E- R, Q+ e0 A3 N/ e#include "stdio.h"
# D" H* G2 D" _main() + s5 E; y- e) L) |9 l" q8 @2 M* ~
{
" }3 }7 v9 p) Uint i,j,result; " m, [  j6 X5 k( a. K
printf("\n"); % c+ {, ^3 t. d
for (i=1;i<10;i++)
( X# N$ [, A6 S% O{ for(j=1;j<10;j++)
9 Y8 w* n9 y; a# ?{ 1 I5 ~& n2 ~9 x- s6 g- Q  b
result=i*j;
1 T! \$ N  s9 P2 Iprintf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3*/
: ?8 l, q/ r0 R4 L} 9 ?) c% |$ n9 K; B! F/ r
printf("\n");/*每一行后换行*/ " |, N; @% U" i7 b' u9 A5 V
}
/ s' u2 n1 C4 E/ Q7 |. B# |8 K$ v, e}
( y0 d0 `4 B  B6 ?! A============================================================== - U' _  E0 u: q  Z  @  q+ T
【程序9; A- k% R. A. ], ]: V6 y
题目:要求输出国际象棋棋盘。 (嵌入式学习企鹅要妖气呜呜吧久零就要)8 H- F, J7 n- h
1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。 $ \; }+ Q5 a2 V2 _/ B1 M
2.程序源代码:   _0 P, J( D& x: Z5 `/ k6 p
#include "stdio.h" . F1 r, G+ C2 ?% a# S& ?
main() ) H1 q# n3 x' a  q6 E! R9 E5 f
{
% @( e; ^' W! G' {' h; e, Mint i,j;
, K1 S6 p# {7 J2 T5 pfor(i=0;i<8;i++) & \  m1 E- [+ K/ p
{
. U7 S+ q4 V& t3 Ofor(j=0;j<8;j++)
# w4 P& V- _& gif((i+j)%2==0) + o+ v0 e, E3 M! _/ ~! W0 |3 [& P4 B
printf("%c%c",219,219);
6 a$ i+ J8 Z) c' \9 e9 felse * s" I" S- S7 m$ K
printf(" ");
& r- g& y# [5 i: E% u6 C2 `2 {: Oprintf("\n"); 7 w7 F. q  E! L0 F
}
  l! X/ w( G- `6 O4 ]; U- {}
0 A1 I) \8 {6 \+ I+ v7 e0 v' o==============================================================
# o1 h( `; `" I7 d5 h, ~, w- S0 R【程序10' O+ F8 H" M6 i% _$ u5 p
题目:打印楼梯,同时在楼梯上方打印两个笑脸。 , O& T) X# n- T8 W. K) s# T1 V
1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。 # e8 t$ ^% ^) [6 s( [
2.程序源代码: 0 ?) Q- ?) M7 ]3 [3 T
#include "stdio.h" % y2 l7 |$ T! \$ y5 c8 R
main()
7 s% T7 S8 B/ u& V3 Z{ ! I% e% n4 r. f
int i,j; ( ~: U! E: C7 _8 Y% F
printf("\1\1\n");/*输出两个笑脸*/
* O0 K8 T  W0 Kfor(i=1;i<11;i++) $ O4 x$ }' j' w) N' m! A8 A
{
% C  G$ ]$ s/ W7 y' d) R( Ifor(j=1;j<=i;j++) ( D  J9 o: r$ s- ~' o! Q* [
printf("%c%c",219,219);
' T7 h5 m* @* bprintf("\n");
% S( R/ {  D& W& |+ x}
$ y2 q. E+ V, z* ]% {2 M0 Q} & u) u8 `5 Z4 q2 H

1 J1 x8 c! d$ o0 B( `
7 E* }3 R, S6 J, D. Z+ l- T, b. Q" U( u4 G3 G: @  @7 J2 ]
作者: zhlei81 2005-1-22 11:29 回复此发言
- G: Y5 U- m, x% C* L9 D# R$ b2 p: ~6 @' O! n
--------------------------------------------------------------------------------
) y1 {7 z! z" A0 j0 V* V5 L! P& K4 L% R
3 回复:经典C源程序100% \8 S% c0 o3 ?7 S8 f- }+ H
【程序119 r, C: X, s' L  I7 V0 ]/ a
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月 + L6 Y2 U) i. c. q+ M% z
后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
6 y% j& _4 P6 i1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... ( L- l# ]0 w9 t# }. L  q
2.程序源代码: / O+ [- ]: [- \
main() 3 D' c0 S2 R9 w3 P7 o; A1 o
{ 6 [4 N  R5 d, }7 m* w
long f1,f2; , I- J) e; S! Y( U1 H+ ^  a
int i; ) e5 y% d: E) g6 \
f1=f2=1;
/ O# W1 Y8 _; @: d: a5 _for(i=1;i<=20;i++) ( L2 B+ m* e! a& P( G
{ printf("%12ld %12ld",f1,f2);
: ~" S9 F2 r0 r& W5 @) cif(i%2==0) printf("\n");/*控制输出,每行四个*/ & \7 D# g+ {. R3 r! Z+ K
f1=f1+f2; /*前两个月加起来赋值给第三个月*/
1 X, D/ S6 e3 d( ~" S9 vf2=f1+f2; /*前两个月加起来赋值给第三个月*/
4 m+ ?+ x" O6 f, `& Z5 E9 X3 F} 5 m& Z+ V8 S6 i* A
}
2 L0 }6 P7 s! `1 o==============================================================
8 C' b' l" c: o$ Z, J' ^0 H【程序12/ @2 {, S" q, \9 T
题目:判断101-200之间有多少个素数,并输出所有素数。
& v9 m) i1 o& T4 w$ _% |1.程序分析:判断素数的方法:用一个数分别去除2sqrt(这个数),如果能被整除, 8 F4 q" Z2 O' w2 y
则表明此数不是素数,反之是素数。 9 G" M% Z+ u* l7 g* P! U. _- Q( u
2.程序源代码:
( K  a) c* q. u) \0 a* K#include "math.h" ' t, K8 i2 H, _5 P* }1 ?
main() % w  k' E0 l7 P6 k- `9 a  w4 D
{ $ i& ?0 ^/ J* j6 {# i+ i
int m,i,k,h=0,leap=1; 3 t* I+ {4 h( a7 P0 P8 I. Y
printf("\n"); 3 c8 U4 g, J$ W* z  v5 C( T
for(m=101;m<=200;m++) / H$ z) r$ e1 N* B
{ k=sqrt(m+1);
& J* v4 S+ f) f0 T# ufor(i=2;i<=k;i++)
- N1 }# q7 F, M6 \( Eif(m%i==0)
4 f- J( O0 l4 B+ c2 P- _$ ^. v. c  ]8 q{leap=0;break;}
' d. b2 F" i& K( t6 [: \* S0 iif(leap) {printf("%-4d",m);h++;
' Q' M  M/ r$ w0 Y( cif(h%10==0) 8 D+ f6 l$ O. e. L$ Z# S# b3 u
printf("\n");
7 I0 H/ W) H! _0 ]& e}
1 f/ U- Q' c# V' X/ j' Lleap=1;
5 T. v  L9 \# y# d}
( L5 l5 ^( a, h2 U+ fprintf("\nThe total is %d",h); / ^: }7 m  Q. t1 n
} ) ^6 C, w5 Z! L) I" I/ F
==============================================================
' a# `8 I+ @5 \$ P* F, l$ w! g1 ~7 N' [【程序136 k/ `$ e( m+ c6 k; v- o& B8 {9 O, |: y
题目:打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数 " [1 I5 B# q: K3 z, _% V1 q' S( ~
本身。例如:153是一个水仙花数,因为153=1的三次方+5的三次方+3的三次方。
0 W- Y5 n. r- c$ _$ a6 o1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 8 l) Z- S! `* t$ C6 o3 Z& \
2.程序源代码:
' e3 U- l* k# k- L) Lmain()
4 \3 h6 h5 f# Z" _) c5 B{ ! x" k! v3 I) ]2 ~9 {# x: X
int i,j,k,n; & H2 W" I2 S4 \/ j
printf("'water flower'number is:"); # w7 v( J; Z, x. D. W" l% ^
for(n=100;n<1000;n++) 9 e6 N# d! V* [# x" C. w) B
{
8 r7 f5 }8 G* E( K, t8 d4 v$ ?i=n/100;/*分解出百位*/ % h( ]+ c  \( K2 G7 X
j=n/10%10;/*分解出十位*/
4 u) m& l, ]0 _8 X4 J! W! qk=n%10;/*分解出个位*/ ) p8 |( i- L$ D9 e, \
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
, Z* B# q+ o% c$ e' ~" z{ ! N" u& Y0 e5 [. l, U: `+ y+ q$ Y! i
printf("%-5d",n); , O6 ~7 v+ Q: O5 x; V" V, c
} & b0 s: E3 h8 D1 F3 k0 ]) ?
}
. Q: Z9 a3 J4 J, f  Sprintf("\n"); , {% E# Y+ _* e% u
} 2 H9 j0 m4 h4 n; G6 a
============================================================== ! x3 T7 w1 y2 c8 X# N
【程序14
, e4 t! a- Y% {4 E4 v题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5
/ _- L6 }' j$ X5 [7 ]+ n* q
- }4 V/ s. H( t( Q2 X! @, e程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: . l0 t! [  K* ^$ O& W) G
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 1 W0 s; Y( ]3 u& j
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,
% {) d! B3 ]. D/ u7 D重复执行第一步。
+ s% h) C) i# W, [(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
8 z3 a6 W# J2 \! x0 G
' t5 {& f& ?# y# j* H2 I2.程序源代码:
& q; R! x# ?9 a# w6 M9 P/* zheng int is divided yinshu*/
4 ^, T$ Q, _3 g8 n) y2 @& l- [main()
: h" d2 Y+ e4 o# q6 c& n# E{
8 A1 C4 M9 e. l3 b, c; I  w3 tint n,i;
: G( b9 W- P) k9 [6 B* _# f" zprintf("\nplease input a number:\n"); 0 T7 q3 }( h: w* K
scanf("%d",&n); 8 a* D( |) `: ^2 J4 Y" c; Q( b0 H6 o
printf("%d=",n); # s0 h9 H; q4 n- L% K
for(i=2;i<=n;i++)
$ |- ~3 S) H0 h1 |: o6 @{ ! Z5 |: B# {  K8 h6 P, o$ G
while(n!=i) * F/ k: |; ~, W" b, t
{ $ w' s, u8 c, q( W0 |
if(n%i==0)
0 U/ D7 ~% d7 |; ^/ f{ printf("%d*",i);
2 O' u) M# v5 \; x: B" F% qn=n/i;
, \1 j5 b/ F( O; W, _* y}
6 f8 M; K& O+ ^$ pelse . Y* C2 A6 h7 @
break; 2 J  P9 |$ m, s# ~) n, M: T, q1 k
} 9 i+ l- `% i* _, G4 }+ j/ z
}
% W# @7 P' Y4 }7 O, p# Z. Zprintf("%d",n);} % @' ~' ?$ r  u4 k; B! ?& N
==============================================================
: m- N' |! |1 ~6 l9 \- {* z) G7 h4 N【程序15" a1 k; o4 a4 C7 K
题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,
! P% y" g+ ]) j7 q5 B60分以下的用C表示。
4 L' O9 L. m0 q# V3 ~7 E1.程序分析:(a>b)?a:b这是条件运算符的基本例子。 : g* e$ n1 q$ J$ @3 ~9 m
2.程序源代码:
- {: G" n, F9 N" xmain() 2 q$ t" {5 y- z" ~' H% `
{ 4 e/ Y5 m/ A, |& C* m" N+ l
int score;
8 A8 i% n$ ?% M' \$ Jchar grade; & ^3 C" S: a- |( U" t
printf("please input a score\n");
6 t9 S2 V) @! V' R9 W, w, Hscanf("%d",&score); * b9 Y* J' u# Q- G, V' i
grade=score>=90?'A'score>=60?'B':'C');
% k" z; u, u  @# `printf("%d belongs to %c",score,grade);
* _' ?0 Y+ q4 U7 f' v* ~4 O/ P} 8 M+ k3 D& \3 N& P
==============================================================
8 k" _' E: Z  ^+ E

& d7 y; Q; p' z; I) }9 r




欢迎光临 机械必威体育网址 (//www.szfco.com/) Powered by Discuz! X3.4