机械必威体育网址

找回密码
注册会员

QQ登录

只需一步,快速开始

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

C语言算法6-15

[复制链接]
跳转到指定楼层
1#
发表于 2017-10-5 16:43:28 | 只看该作者 回帖奖励 | 倒序浏览 | 阅读模式
【程序6 - P' I, {4 X# l4 a- H: q4 `$ Z ]; V
题目:用* 号输出字母 C 的图案。
# I6 Y- c7 c5 I% V0 }) W0 ]1. 程序分析:可先用 '*' 号在纸上写出字母 C ,再分行输出。 % S' z* R2 f g( u( [9 d0 z
2. 程序源代码: - C# E3 P3 Y6 I, w
#include "stdio.h" . W! W. E/ }+ S& h% I+ Q# s; h
main() {
& [/ [7 l$ K( v: iprintf("Hello C-world!\n");
0 f" o0 L# X; s, q- L! Cprintf(" ****\n");
8 C W' U" t4 E$ z% pprintf(" *\n");
$ U3 B2 m& t: U7 E9 |" eprintf(" * \n"); 7 z! _* w5 W% b! M0 ^
printf(" ****\n"); }
7 F5 q* W1 a+ P. R0 E============================================================== $ }+ S( r) _5 s) ~2 ^$ m9 V" L, g
【程序7
( {; r7 G& t6 { 题目:输出特殊图案,请在c 环境中运行,看一看, Very Beautiful!
: V$ P4 U( B7 D/ ?4 p' r. L; q! {1. 程序分析:字符共有 256 个。不同字符,图形不一样。 - H5 {: O) Q! c' r5 T) C% B2 w0 M
2. 程序源代码: ) @$ @. M0 Z0 o4 S
#include "stdio.h"
! M3 n! [8 v" G+ g% p, ^main() 4 r- b" ] n' G. p+ L$ Z
{ 9 B* N) }5 ]+ c8 c/ d
char a=176,b=219; 4 q( f& ] J8 O* Y3 j8 h0 Q6 ?
printf("%c%c%c%c%c\n",b,a,a,a,b); % v. k z" F; C" F: Q. k
printf("%c%c%c%c%c\n",a,b,a,b,a); ( m) _2 {4 C! Z' S
printf("%c%c%c%c%c\n",a,a,b,a,a);
. \6 \! f: b3 w' b' a" ]: _printf("%c%c%c%c%c\n",a,b,a,b,a);
& ?& N+ ~- k* \printf("%c%c%c%c%c\n",b,a,a,a,b);} m5 ]) v" U: A) w n6 H3 N
============================================================== $ p: i6 @" l8 g
【程序8
6 F! g) l x# Z& y 题目:输出9*9 口诀。
6 |. r U$ g& d9 |1. 程序分析:分行与列考虑,共 9 9 列, i 控制行, j 控制列。 . U* o! x& a! o7 q5 P
2. 程序源代码:
6 \8 s8 Z; q' K( J- @#include "stdio.h"
/ r) @8 ?$ d3 w! S: s. |; b1 D0 kmain()
; V8 W! _" L$ k6 |{
+ `( P7 i4 q2 p. Vint i,j,result;
/ |$ n# o( K; c* H/ K9 Iprintf("\n");
; t% n% a7 {' B/ {# [/ kfor (i=1;i<10;i++) 2 N9 ^: ^# p; r" p% u
{ for(j=1;j<10;j++)
$ r+ T& U1 f) {. a$ `+ r{
, K9 I1 p' H$ Z2 ~; Eresult=i*j; 9 l' w, B- v" U5 I6 F: h5 f
printf("%d*%d=%-3d",i,j,result);/*-3d 表示左对齐,占 3 */
5 a" P0 y2 |+ e9 e( P}
. t# V1 Y( b3 |! b0 K- jprintf("\n");/* 每一行后换行 */
9 H7 A9 @+ m0 Q} 2 s& M+ N# @. H/ ?% J6 L
}
2 T6 ]. V, ?2 X4 M/ t==============================================================
; a O! a! ]* K) |2 e( a 【程序9
+ ^; P4 {2 L1 }2 p" r. N8 l6 i 题目:要求输出国际象棋棋盘。(嵌入式学习企鹅要妖气呜呜吧久零就要)
r, z4 L+ L: T4 @' }2 }: I1. 程序分析:用 i 控制行, j 来控制列,根据 i+j 的和的变化来控制输出黑方格,还是白方格。 7 {; |' u' X0 x: L: H3 R0 Z
2. 程序源代码:
8 ^* q/ H: L5 g) T! ]: z P m#include "stdio.h" 9 M1 q5 `4 [$ l0 {1 J- H7 D. C% i
main()
* Q* D& i' q: s* h{ 3 W/ c- H! A- T/ Y1 @: i& m( T
int i,j; 3 V8 j% M9 }0 C& @" o, d
for(i=0;i<8;i++)
! O! M3 P+ `3 }- G{
3 ~8 N+ _' N& ~for(j=0;j<8;j++)
4 R8 @# N+ T# d6 h0 `if((i+j)%2==0)
$ b3 u2 ^, r( y! X7 I6 h4 V+ I& \! Jprintf("%c%c",219,219); 3 P$ }3 }0 s3 [ I" t; C
else
) E. a3 ~5 f8 G3 Z# B. uprintf(" ");
% U6 ?8 I% v# U4 r& q, F+ Rprintf("\n");
- ^6 X" o4 z# \} ) @1 E. p7 I1 K3 X$ I, u1 J. G
}
* I' ^: z! n+ S==============================================================
6 x/ ]$ Y4 z4 p 【程序10 2 A. U ?8 X% J$ ?
题目:打印楼梯,同时在楼梯上方打印两个笑脸。
1 G' C. P* V# ^, G% e$ B- }1. 程序分析:用 i 控制行, j 来控制列, j 根据 i 的变化来控制输出黑方格的个数。
( b6 M1 D; N2 ^: k5 Q3 S$ K& C( b2. 程序源代码: f0 S* U9 ^* |5 j! X8 n" g
#include "stdio.h" - j- V# a& a: H1 O
main()
6 T, C6 o$ k* n{ 5 [ v/ C5 W$ r. e% |6 ]5 }; G
int i,j; : C& F$ k* Q9 u7 M7 d: r; U1 d
printf("\1\1\n");/* 输出两个笑脸 */
- v5 e7 Y/ z$ b) y8 Y0 @for(i=1;i<11;i++)
9 C* ~) b H0 c- p{
% [, y- S8 w z/ P) J+ }for(j=1;j<=i;j++) 6 C7 m2 N' a7 D4 ^2 U8 ?* V7 ?
printf("%c%c",219,219); / F7 F c3 X: g
printf("\n");
8 k3 u7 z# H$ M1 G}
+ E! Q1 _' T0 t9 F2 t* ]}
; `6 O7 ~3 \# ~, S% i
8 Z# E, M' R! \* c5 ^/ Z
. b5 J$ l' F8 e6 Q$ G" L
0 C1 A3 t3 C- o& O1 W 作者:zhlei81 2005-1-22 11:29 回复此发言
1 |6 f4 _+ v( G. q1 a5 G& @. s0 w % G" U: g/ u$ h3 o2 @7 I4 U4 M; p+ A
--------------------------------------------------------------------------------
6 z* q7 D }7 ]9 V, h2 q7 B2 G, d
3 A, a7 n, c" h3 回复:经典 C 源程序 100
" B0 m4 I0 |" _! m 【程序11
# O9 t% d. }2 _9 W6 p7 P1 b 题目:古典问题:有一对兔子,从出生后第3 个月起每个月都生一对兔子,小兔子长到第三个月 # n6 V- s- N6 o0 b$ h- M9 D
后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
6 Q' N4 F6 E0 ? t8 ~1. 程序分析: 兔子的规律为数列 1,1,2,3,5,8,13,21.... & o% |' }/ G* \ E5 V f7 Z4 }
2. 程序源代码:
/ d, Z+ F" ^) o8 @0 t. cmain() `; Y# f, a9 N) S* d! {4 I. l
{
- N9 a9 e, {( ]4 plong f1,f2; 0 R! l. ^& r: H5 C2 y6 G" g( d) k% C
int i; 4 u6 f1 w5 F. J8 p! N" N
f1=f2=1; ) c3 s: c! z: b3 D$ l- k0 I3 T: W. ]
for(i=1;i<=20;i++) ! Q( f6 d! Z! \
{ printf("%12ld %12ld",f1,f2);
$ x: i2 N4 D# I$ {! L8 wif(i%2==0) printf("\n");/* 控制输出,每行四个 */ u% w b( [$ G
f1=f1+f2; /* 前两个月加起来赋值给第三个月 */ 0 b3 n+ ^) X. U, e8 m: @* [3 v7 i
f2=f1+f2; /* 前两个月加起来赋值给第三个月 */ . e* M6 c7 y- t: X9 R0 q; j
}
' q" w/ a3 d7 G4 P- b}
& Z8 L: }& k! d8 A! x============================================================== 2 w# X8 n0 k, U$ D) {6 x
【程序12
$ y- A4 D2 D; K, y$ b- z4 H 题目:判断101-200 之间有多少个素数,并输出所有素数。 2 P' b2 p3 f8 F- B [
1. 程序分析:判断素数的方法:用一个数分别去除 2 sqrt( 这个数 ) ,如果能被整除, 0 D2 [6 ~1 B+ |; e" _, Q3 u
则表明此数不是素数,反之是素数。 " @. N9 H6 q& U$ A
2. 程序源代码: / s5 Z! t7 y* f/ w0 B" x4 z9 }) G
#include "math.h" % v) j: o5 U2 \2 j) n" P5 ], w5 r3 ~
main() 0 @7 I# v/ t2 U/ l: ^' o1 x
{ 5 _1 d! Y0 Q& c# r' }
int m,i,k,h=0,leap=1; m2 s- w" P; R$ ?1 _0 B
printf("\n"); * k$ q' K$ {, v; e
for(m=101;m<=200;m++) 5 Q4 q6 v, m; ]7 _& q
{ k=sqrt(m+1); ) W# T1 t: `2 @; p* @& G5 L
for(i=2;i<=k;i++)
' r! b0 ~9 Q* E( r" F: l+ fif(m%i==0)
$ `: q* q' H( u* V; k" n0 A- t3 C{leap=0;break;} 2 H: a0 q' T6 [/ T6 ?4 F7 B1 F9 W" V
if(leap) {printf("%-4d",m);h++; 7 ?2 H6 J& Q9 s% _8 d
if(h%10==0) ) q( `0 b' ?* G+ `1 o
printf("\n");
P# l0 D3 X2 z$ i j* f} - \8 i. R' q/ ~3 a# ^
leap=1;
8 A4 j( M" ?5 ~! g4 ~& ^; p} $ |# _6 L- ^( P/ ?# A: l7 m" {
printf("\nThe total is %d",h); 1 y: O5 Y* ^* S8 ], w3 O
} 9 p. d+ ~: n0 s, }" S( R
============================================================== 1 E$ `0 W5 J1 L! B' F
【程序13
2 j# V1 B- ~# P8 R 题目:打印出所有的水仙花数 ,所谓 水仙花数 是指一个三位数,其各位数字立方和等于该数 ) H: o: d i) D) k
本身。例如:153 是一个 水仙花数 ,因为 153=1 的三次方+ 5 的三次方+ 3 的三次方。 . z+ t8 ?! `, [2 [% H1 J, T7 {
1. 程序分析:利用 for 循环控制 100-999 个数,每个数分解出个位,十位,百位。 " }1 n9 F- n) Z1 Q" n
2. 程序源代码:
z2 k- s6 h. p% x6 Y9 \9 I& Cmain()
- ~9 J& y, h1 l{
x% n. X6 U3 h$ ~int i,j,k,n;
; T$ ?0 N: z4 g% l3 cprintf("'water flower'number is:");
9 j( k+ N( }* I4 h/ G4 {7 efor(n=100;n<1000;n++)
/ I" z# K6 [0 ?: F' G5 r3 B1 z! `{
* [4 Z2 H1 ?$ L& a) ai=n/100;/* 分解出百位 */
9 G/ Y2 D( t: s# c" mj=n/10%10;/* 分解出十位 */ # e3 b+ ?4 h! |
k=n%10;/* 分解出个位 */ " b$ m: {# D7 L. \
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) " _+ d1 j1 I F
{ 7 C$ K' ^% ^ Q) C1 j/ N- e4 r
printf("%-5d",n); ! |% \! x9 |9 a1 X
}
1 F# H. J6 p9 [8 c}
5 E" ?6 P q% f& {+ B* z. ^printf("\n"); , `( o8 s( d. r+ G5 P
} 2 P5 x( g- ~5 ^) v* d8 L
==============================================================
# e S) Z( Y0 _1 K, f9 s+ K( a 【程序14 % l; N2 N% p% _) g/ \% S9 t
题目:将一个正整数分解质因数。例如:输入90, 打印出 90=2*3*3*5 $ T+ O* o; f0 F9 w/ k8 [/ t% ^
* [" ?4 U/ |% a/ y. w& P" A o
程序分析:对n 进行分解质因数,应先找到一个最小的质数 k ,然后按下述步骤完成:
# E2 m# ?8 u' ~0 @(1) 如果这个质数恰等于 n ,则说明分解质因数的过程已经结束,打印出即可。 9 r- Q5 _( v, t4 j- w
(2) 如果 n<>k ,但 n 能被 k 整除,则应打印出 k 的值,并用 n 除以 k 的商 , 作为新的正整数你 n,
7 B0 Q! |5 P/ L, l( Q 重复执行第一步。 # j7 {3 d" p" S/ u5 Q
(3) 如果 n 不能被 k 整除,则用 k+1 作为 k 的值 , 重复执行第一步。 9 j+ n) ?4 |( }# ~+ l8 Y
A7 Y8 w' ]* F
2. 程序源代码: 7 i6 c) _ G3 V7 ^# e$ M. [
/* zheng int is divided yinshu*/
" E) ^# b, h0 `+ Cmain() $ v$ d* L, m) E6 Q) a& o& V
{ $ P2 {6 B2 s) M& c
int n,i;
& ]1 r3 ?# u$ c( X& I* Aprintf("\nplease input a number:\n"); A3 H( H5 O/ h
scanf("%d",&n); ' T4 f0 Y1 O$ X/ y6 o9 ]( J
printf("%d=",n); + o7 q$ U7 n1 n0 y# C3 K+ L
for(i=2;i<=n;i++) 2 B* }; n( O8 H% P# K% w; _
{ + @( k$ B4 m9 g; u. I) Z
while(n!=i)
R4 F9 U% _8 V( S{ + Q1 o! ? \# H" ?, A, J
if(n%i==0) * y Y" b% u' u% \. |" B
{ printf("%d*",i);
, z' n! e. R# t& z* G2 s" Dn=n/i; $ t4 {1 \) _. A. Z0 ~1 x e2 ~! a3 u
} * f+ V* N3 Y/ O! f
else
% ], p- {1 R7 V1 r& W! ^- P4 `break;
1 S- @+ Q) p- G( Z} & C) n& ]. I) d2 B* C* E
}
" d' a0 | f X4 U( `, @% uprintf("%d",n);} * l: Y w2 _$ b. f9 P9 t2 f1 U9 r
==============================================================
/ @6 H5 @. Y2 W( m 【程序15
* q X# Y, `1 B1 ^5 q9 [$ U$ l 题目:利用条件运算符的嵌套来完成此题:学习成绩>=90 分的同学用 A 表示, 60-89 分之间的用 B 表示,
+ G2 {8 K4 e2 Z. G60 分以下的用 C 表示。 % } i p4 T: n! G) g5 D
1. 程序分析: (a>b)?a:b 这是条件运算符的基本例子。 - @; L+ s& q1 ]& ~
2. 程序源代码: p( a& V) }# n
main() 1 S4 }. p& _4 x- `* P. b
{
# R% U/ B+ e, U3 i; J, U D* _int score;
3 j9 B: L7 r5 f( {- vchar grade; ) G# h; Q! T) O0 n; m/ \
printf("please input a score\n");
U5 L! L/ U/ _7 v/ F. \0 L* Fscanf("%d",&score);
* b' T [# y! S) b" ograde=score>=90?'A' score>=60?'B':'C'); ; y/ E. H: a9 ?2 C. L% S% o
printf("%d belongs to %c",score,grade); ) Y! q2 S0 O+ s% \
}
8 l7 J/ ^- p0 W2 j$ l' |) ]# e==============================================================
4 r: q$ h: L7 e2 h9 Q0 U* w% w

3 v% B* |" v9 O& t7 T. I6 w! v5 _
您需要登录后才可以回帖 登录| 注册会员

本版积分规则

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

GMT+8, 2024-6-4 05:08, Processed in 0.056757 second(s), 14 queries , Gzip On.

Powered byDiscuz!X3.4Licensed

? 2001-2017Comsenz Inc.

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