机械必威体育网址

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

作者: tainqing    时间: 2017-10-5 16:43
标题: C语言算法6-15
【程序65 j2 E' P* N# h9 E
题目:用*号输出字母C的图案。
* ^* _) f  ^( G' A1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。
7 I) }( ?4 e. Z1 T8 V2.程序源代码:
( A8 J9 u2 y4 p+ g6 r4 Z- J; g#include "stdio.h" ; B+ w$ w# a& A& h
main() { ) |0 `6 P  H6 n! H  b
printf("Hello C-world!\n");
3 l: h" c9 f2 D+ ~0 c& _printf(" ****\n");
2 W- e0 c. v9 rprintf(" *\n");
7 C" n8 v1 v/ l- T4 q  wprintf(" * \n");
. Y: }5 l! P* lprintf(" ****\n"); }
* I. |1 S/ e3 G" z' G============================================================== * Y& R" E  w3 E+ {9 d4 L+ Y
【程序71 z' l( M6 h# }  D: K/ B! r6 _
题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful! ) g! |3 i0 \( Z4 Z8 {! I& g: x
1.程序分析:字符共有256个。不同字符,图形不一样。
. g! m; a7 n; P% y$ z. I2.程序源代码: 2 E8 r" `4 z7 a# D; h% U
#include "stdio.h" 6 z5 A, W, H8 i. Y
main() 9 Y) z$ F/ V' H! E! ^0 P
{
# r! [* P4 G! z) Schar a=176,b=219;
1 X$ R' V  ^- w* yprintf("%c%c%c%c%c\n",b,a,a,a,b); 6 _" G0 A: q2 Q) @, ^/ M
printf("%c%c%c%c%c\n",a,b,a,b,a); # T4 M' i, S7 ]: \& T% l% ^
printf("%c%c%c%c%c\n",a,a,b,a,a);
8 }" z! k" m  N, @! w- fprintf("%c%c%c%c%c\n",a,b,a,b,a); 1 s9 c% A3 U( H# \2 Z) Y
printf("%c%c%c%c%c\n",b,a,a,a,b);} 1 I) a+ n8 d4 j; ?; _
==============================================================
6 v4 C7 W$ ?% ]$ ~. X7 v【程序84 U9 j3 }. E9 y; }) O% B! L
题目:输出9*9口诀。
$ B2 E# q7 A  B; l1.程序分析:分行与列考虑,共99列,i控制行,j控制列。 4 y# [2 y) l$ m+ Q
2.程序源代码: - }5 g* a: W$ X: \  {$ s
#include "stdio.h"
$ r- O( b$ z( }4 dmain() % q' e! n+ A1 Z  B
{
6 i1 h% P, ?8 |- bint i,j,result; $ j1 k4 S2 [$ T, N. r; ~
printf("\n"); ) `$ Z2 ^' n0 U2 Y' g1 ^
for (i=1;i<10;i++) ! J- t* @% h7 W+ |5 T, Y
{ for(j=1;j<10;j++)
1 r) E5 {/ U+ Z. |+ f5 X; ^{
7 Z: ?$ N' ^# wresult=i*j;
1 f0 F0 }8 k! G# Tprintf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3*/
! x% z) W5 V' Z, s} , a3 ^0 [% ~! X" W
printf("\n");/*每一行后换行*/
6 a3 o" ?7 g3 z1 ?  J# D% H! i  F( x} ; I6 F3 `. H( j8 [+ [' F$ |
} : j4 J7 f' ~1 s" h& X+ c5 x7 e, G7 b
==============================================================
2 i; W5 D1 Y6 h- r$ o* x0 B  `【程序9
% y& K3 g" z. t; r7 f9 w4 Z题目:要求输出国际象棋棋盘。 (嵌入式学习企鹅要妖气呜呜吧久零就要)
. ]* A- R: s  L1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。
! I! e$ w* A. T( s4 J2 _( d5 ^2.程序源代码:
8 v- D0 m$ c2 ^1 l2 R* Z$ @% P2 A- ^#include "stdio.h" . g) \% O) T1 c2 p, o! d3 H9 e% T
main()
* R) Q3 k3 s- L2 j6 r: f{
( a" n# _2 q/ R( N, k5 qint i,j; / l: r' n! E5 o% _
for(i=0;i<8;i++) - ~% |2 {3 n8 x5 ?4 t' b
{ 7 `" h0 S4 @3 p' @* W0 L
for(j=0;j<8;j++)
5 @  k% Q. M' `" q1 g' Xif((i+j)%2==0) / _  l3 O! m% A; N  M  H
printf("%c%c",219,219);
% ]2 H2 R* \/ Z; aelse ' V- {8 K' }: k: N: H
printf(" "); / ^, B6 Q" B2 B  F
printf("\n");
" J0 ]  j0 |* f& K. I2 O5 H) `} ) h: |+ b! n# P3 j2 s6 s. Q
} ; H6 O% D2 q( ?- P
==============================================================
% b0 N8 _% u; \【程序10" @1 ~% z! w. P
题目:打印楼梯,同时在楼梯上方打印两个笑脸。 ' d. Z- @. ~. Q% _
1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。
0 G9 m' R) W. v2.程序源代码:
# {/ A9 S" C0 k9 N( Y# D5 ^, K. T#include "stdio.h" 6 _) T* d% y  ]
main()
% W4 d% B% A  ~$ c8 f/ y{
# Y* p4 H. q: l; Mint i,j; 1 s5 N2 n8 S( q! k$ G4 D8 h
printf("\1\1\n");/*输出两个笑脸*/
) P; t$ k) n% ^8 O) L( tfor(i=1;i<11;i++)
8 W. \; h4 _, d{
* w; Y" @$ F5 ^! [# Efor(j=1;j<=i;j++)
! j5 O1 W$ `4 k0 jprintf("%c%c",219,219);
0 S% Y3 ~  C  ~5 E2 }printf("\n");
& v0 L5 u( g: S} - O- r2 A3 i$ @6 a
} $ a0 h, Y" B- N- I
7 L' D5 V6 B9 B4 G8 L' j
0 a; ^6 [4 s2 k; l. Z9 F

( \. t& L/ E( _/ B8 l3 b2 N作者: zhlei81 2005-1-22 11:29 回复此发言
/ e2 w% \; ~2 O' P* G$ i* u7 c% \; p/ b0 Y" Y0 A
--------------------------------------------------------------------------------
! o0 o1 v: m+ T5 T# B& T  _1 r0 t3 x' z% [
3 回复:经典C源程序100
8 e/ o& |$ ^( X$ j6 Q【程序11) R+ y. d+ O" M6 X5 o1 R
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月
7 g3 n/ v9 X3 _4 W0 U后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
& o- G( o( h& |0 D; {/ h  L: S1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
9 \3 T9 ~4 M' Z$ u* A0 \' x! \2.程序源代码: ; X8 h  ]! g0 O, R+ U
main()
0 ?& L  p4 P' d{ : n0 M* N6 r$ r3 @- @
long f1,f2;
" ~2 ~0 Y7 v3 {  _. }) W, Zint i;
  A5 C( x0 {% f6 |f1=f2=1; + n' \/ u* `4 t; b$ c; {7 [
for(i=1;i<=20;i++) / ]' b. R' p  Y; d) H( g
{ printf("%12ld %12ld",f1,f2);
3 K* o1 |, I4 h+ {$ x  R) \% S& ]if(i%2==0) printf("\n");/*控制输出,每行四个*/ ' C. ~5 ~8 B+ |; |& B
f1=f1+f2; /*前两个月加起来赋值给第三个月*/
; c0 b7 g2 ^( {8 e% Bf2=f1+f2; /*前两个月加起来赋值给第三个月*/ 1 i" S- I7 Y7 f6 |  z) ^
} 4 F, w6 U- a+ V3 O- b
} 0 m0 d/ B7 _, s0 s  M' T
==============================================================
3 p0 q- r5 M' n& g$ R* j+ M; M+ r【程序12
  }7 f. L( k4 C题目:判断101-200之间有多少个素数,并输出所有素数。
0 e% `7 A' g5 B8 e1 @  |' y1.程序分析:判断素数的方法:用一个数分别去除2sqrt(这个数),如果能被整除,
% \. L& ?, @; u则表明此数不是素数,反之是素数。 & ]0 y7 g4 G$ P8 M' [* a
2.程序源代码:
& N% }. o# \8 t! [! A( x) A0 T#include "math.h"
7 z% P4 ?; w8 @/ G8 X0 ^main()
9 ^. ~+ K: R! x$ P) N{ . t3 B6 F$ v& ^
int m,i,k,h=0,leap=1;
6 i. J% Q  ]2 a' w% Eprintf("\n");
/ C0 X& c/ s" I0 j# k% Z  S0 z! Gfor(m=101;m<=200;m++)
6 d: ~. f2 Q* i{ k=sqrt(m+1);
, ]8 H$ a. X) z" V  O) U: d0 rfor(i=2;i<=k;i++) 5 I5 h3 b+ @( X
if(m%i==0)
/ T6 G' i) `7 v) `{leap=0;break;} 9 x) E( l) _. p; s( |. w
if(leap) {printf("%-4d",m);h++;
7 g" R5 v6 f7 L8 z, a: g) l; Xif(h%10==0)
$ F; n  R- ~+ \printf("\n");
1 u8 y6 w1 ~2 y+ r% F} 2 E3 U3 F6 x. J* ], s
leap=1; 6 |4 j% S+ A- @4 z8 N6 U0 n8 O0 k. w
} + @/ ^# y; P* y. Z4 Z3 E3 o
printf("\nThe total is %d",h);
9 i; P( G- \5 w1 i; }4 `} ( D. L8 L. Z+ G, N7 \- r* o  w. m
==============================================================
& B7 J# g- c6 _6 |/ U* x# t1 Y* Z( o& }【程序13; q6 t" J  d' I; r% y$ z/ j) J
题目:打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数 6 @% ]5 f* I  K( i0 t5 d% e# a
本身。例如:153是一个水仙花数,因为153=1的三次方+5的三次方+3的三次方。
  j* q4 y5 X$ g1 v' |1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 - x. P9 _( c1 k4 q+ e; y! V* s/ o0 B
2.程序源代码: 9 Z7 n# i9 M" O7 N: a, i9 S3 }
main()
0 N4 {" P9 R! M% v0 j. v0 @3 _{
' K7 d5 b1 {0 ]) W' m9 ?5 |( L3 Xint i,j,k,n;
+ m% e$ O' J4 M' mprintf("'water flower'number is:");
( ?% A* h7 F: C$ p5 w$ hfor(n=100;n<1000;n++) 5 z; }6 {, w! V
{ % q0 W: v/ y- R' v0 b9 z) z1 A
i=n/100;/*分解出百位*/
* s- g% v. @& x8 Q7 T  D( cj=n/10%10;/*分解出十位*/ : X9 o4 I, _. B8 l
k=n%10;/*分解出个位*/ . X! s" `$ O9 ~0 K
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
8 h  D, ]3 W2 M$ Z/ M' F{ 4 Y" g& H0 C1 v2 r( m9 [
printf("%-5d",n); ( O  C. P/ u- S% K6 l8 h
}
, f( |  Y' @9 d4 t4 v% x! G+ W9 G} 5 ]% h2 _3 D' F4 i: f& O
printf("\n"); % I+ \1 T# V  x" e$ L+ T4 s
} $ A, [. s5 @. S% z0 g/ f
==============================================================   R4 r# h, U: {, N8 u
【程序142 z9 U/ @( |0 Y  O& D
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*51 |. h, L! v/ L1 r# k

' q. ~, s) q8 l5 H程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: # Z% S) K" O) y4 v: Q( ?% H
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
( S+ t% W; B& S# |  g% M3 ~' C(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n, - K$ i6 t/ A/ B5 e2 d- X8 y( A# u
重复执行第一步。
7 ]) D6 X& j, B. E(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
- d; M$ O4 }9 V2 _6 W
) m7 L2 g7 W1 J4 F2.程序源代码:
5 f& z3 [* l9 i, ~/ v/* zheng int is divided yinshu*/ , I4 [: i7 N6 i5 N& C) Z% ^
main()
  D# I5 R1 l0 C. k{ 5 m( W; t& f; x* m& ?
int n,i; & M) n$ I9 Z$ W/ B/ x
printf("\nplease input a number:\n");
$ r6 b. k1 b5 R' Y. f# Rscanf("%d",&n); " e( d6 ~' ]/ E0 H& T
printf("%d=",n); 8 y( G$ u9 ~: j
for(i=2;i<=n;i++)
5 B; f" ~% k) s" W+ B{ & O7 ?& H, o8 e! B3 C( d2 S
while(n!=i) ! l- i0 R5 L3 y. {# z' H: z" X, ?
{ % n& e2 Z/ H0 p9 U8 k
if(n%i==0)
) X% z0 r7 Q+ S4 l) ~{ printf("%d*",i);
5 {+ W8 _: c4 }  l/ E/ In=n/i;
/ |8 G2 Z  v5 s' Y} 2 D9 z' ?: Z4 K% Y+ z% o
else " i. y2 P5 H$ f% u# M- x
break; : w3 u5 ?9 V* ^) v& ]' f. K
}
$ b! r$ c# @, z% S5 a} 4 w1 s8 O, y1 h5 w8 g- e2 u
printf("%d",n);}
! B) f: m7 B% J# U==============================================================
. O: f' E" e' G0 e2 e5 D2 o【程序156 I5 H% R! U6 P' ?! }( j; @% `+ e
题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,
" R& \( r! S' v: `) x$ \: o+ g, k5 M/ y60分以下的用C表示。 ( Y  w4 x- g& t: r# W
1.程序分析:(a>b)?a:b这是条件运算符的基本例子。
! B: f8 k9 g2 T) _1 h) |2.程序源代码:
7 X" T9 {& u* }6 U, B8 gmain()
1 B; k6 Z+ ^4 T" Q; I, I5 a{ + f9 s$ B) I: m" u: k0 {: c) [7 |
int score; 2 T3 x. y5 x8 {9 r  I1 A- E
char grade;
* z& V( z9 z: i5 |4 K, q0 U/ vprintf("please input a score\n"); ' Z8 R3 c, y% n% h+ w" _# N
scanf("%d",&score); ' P8 B; @. V! _1 o2 |) A5 a( k% L/ y
grade=score>=90?'A'score>=60?'B':'C');
' n2 \0 x; j  |9 ?printf("%d belongs to %c",score,grade); 1 j$ k) Z3 `$ L6 b
}
8 t8 ^' N5 f# i; s$ f============================================================== - V0 ^' n9 Z- M

7 K# s1 e" {1 v, J+ m3 {




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