找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 71|回复: 0
打印 上一主题 下一主题

C语言算法6-15

[复制链接]

114

主题

136

帖子

1000

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

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

EDA365欢迎您!

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

x
【程序6
" I+ h  Q. ]+ p& n题目:用*号输出字母C的图案。 5 [. t# N: O5 m! r
1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。
3 _0 ]5 n  Z* u' r, {) y2.程序源代码:
' c2 R; r7 a2 s4 ]#include "stdio.h"
7 O- a1 q" c  Kmain() {
% z0 g8 Q' R7 fprintf("Hello C-world!\n");
0 n2 H7 g9 @% q8 D! fprintf(" ****\n"); ( y) p+ Q* T2 {& U, F( `
printf(" *\n"); . ~. |* H9 L$ o1 P( m1 M4 {2 I
printf(" * \n"); 4 l: b  z% t! I
printf(" ****\n"); } $ S' s& _. m/ @
==============================================================
: L" s* W4 {/ Y9 e【程序7
  s6 h8 |( V8 E/ v1 v题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful! 4 @6 F; E/ o% }) |6 ?# y
1.程序分析:字符共有256个。不同字符,图形不一样。
' D. o  V' ~* N$ M) x2.程序源代码:
+ k6 f) W0 k1 c* f1 s#include "stdio.h"
8 j: D3 B& t8 t! p- f" S1 l$ b$ Xmain()
9 d  \/ G' W3 R. ~{
' `" d" S- a' P- H" h& y' A" {char a=176,b=219;
! N# @& i& I, r; Aprintf("%c%c%c%c%c\n",b,a,a,a,b);
$ M( X7 Z! O4 n7 v* s4 Q) {0 {% M! f7 _printf("%c%c%c%c%c\n",a,b,a,b,a);
' B6 A. V$ @2 c. l6 Uprintf("%c%c%c%c%c\n",a,a,b,a,a);
+ J" |6 ~  Q  N; g* Gprintf("%c%c%c%c%c\n",a,b,a,b,a);
- f4 ]1 o8 E5 t+ @" g5 Z" U8 p" Eprintf("%c%c%c%c%c\n",b,a,a,a,b);} : [: R4 \. M3 _; _# N( l" D# `
==============================================================
4 t8 g' }  K5 J7 ?/ q【程序81 n8 `/ S- h% B9 m  L- M! j
题目:输出9*9口诀。
4 Q. d4 O6 a: D6 T: C1.程序分析:分行与列考虑,共99列,i控制行,j控制列。
& v! I/ }  r) _. U3 h$ k' ]+ W2.程序源代码:
5 I2 f; Z0 q8 X1 R#include "stdio.h"
9 z! g" \' q& |) z0 Z/ Qmain()
! }# T" f6 x7 ^! O+ C% k- U2 o{ 0 A. n  l# Q# \3 R/ n
int i,j,result;
# f6 D* o$ q' d) z$ u! iprintf("\n"); 9 z" U) P! I8 ~' p4 S/ ?. j( z5 N+ a* W
for (i=1;i<10;i++) 3 D+ G+ E8 h8 r4 x/ p7 `" l; Y
{ for(j=1;j<10;j++)
# |, M$ C. J9 w# S% r2 }{ ) b' B; L- R* \3 c5 D  l
result=i*j; 3 I) J! _, K! `* J
printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3*/
6 }- Q! A$ i- g5 D}
5 _$ O$ f/ C! r+ rprintf("\n");/*每一行后换行*/ + ~& `: V6 ~* [% j7 e! U5 N: L
}
5 @* n# }- l* ~  Z} : D5 [: ~9 W; Y% u& v% x
==============================================================
/ ], l/ H9 X; C7 x8 O" W  @【程序9
# w, c7 i% D* Z. m5 _% c5 x) U) E题目:要求输出国际象棋棋盘。 (嵌入式学习企鹅要妖气呜呜吧久零就要)
8 K- I0 R2 C, e& c! o' k1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。 ( c- }$ O. }- U! r' T, Q
2.程序源代码:
/ m3 i* x, q  t+ L/ U0 t$ e, {# O0 W3 i#include "stdio.h" # a0 S, w& V8 U/ f! l3 Y& v
main()
9 x( \' t+ T; ?+ {& l& _{ 1 v" k9 y+ h$ R8 O& R6 o
int i,j;
/ R+ N* L' f9 a; H. Q: t" @for(i=0;i<8;i++) - k9 P5 g2 M" f* M$ c6 k3 F
{ " ], W- j- Y$ V; |' n
for(j=0;j<8;j++)
- A3 W/ _% f4 H5 Eif((i+j)%2==0) 0 k0 E9 l) m  h; Q
printf("%c%c",219,219); 8 c2 I9 O/ O; y
else ( T5 r! A% s& G5 i; Y2 C3 I$ a5 A
printf(" "); 9 ~8 i3 w' w" w, I6 H& V5 X  I& ?
printf("\n"); - n6 ^1 d- h( R8 w$ Q
} 5 n' J2 x) b& [6 N  W: n& d
}
, Q. A. U: H, i: j. M============================================================== / |+ I# H6 Q: p
【程序10: u7 ?/ H. p! Y! Y, s8 k7 U( U* {
题目:打印楼梯,同时在楼梯上方打印两个笑脸。 0 n4 Z0 S  {. d0 U
1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。 - }7 }+ [% p% K/ I
2.程序源代码: & O- L6 C3 p( p& n: n
#include "stdio.h"
3 T# K8 k$ ^- A/ D1 G& t3 Xmain() * p6 W# p" O: S$ T
{ 5 s5 u" j$ p' ~, ]
int i,j;
/ d9 T( i3 j6 c2 w( b# B7 nprintf("\1\1\n");/*输出两个笑脸*/
" \' Y3 r8 l& \, a. K  U4 lfor(i=1;i<11;i++)
3 \+ \5 k8 |# C0 S4 V# }  y{
+ H4 X9 q6 m. M, l1 Rfor(j=1;j<=i;j++)
, `7 P$ d/ g# h% M9 R. k8 kprintf("%c%c",219,219);
5 P" i% `7 v3 K+ R) xprintf("\n"); & w- s- D) W1 @7 W4 y
}
5 J: T! m0 {0 Q+ p! ^} 4 d0 g6 v! W0 a) L- F, W. s1 W9 X

8 y3 V5 ~* }( I" j
3 u0 a( d& A( m: a# T
6 ^; E( p  W* v" u! e9 z作者: zhlei81 2005-1-22 11:29 回复此发言
* w% f6 a( N( P8 H4 e9 X1 l: T' \1 Y1 g2 D8 C6 t
-------------------------------------------------------------------------------- ' A  W$ o% V, L" C9 T6 l3 b) c

4 X* J8 H" S) }. d3 回复:经典C源程序1006 V6 r2 m! Q% h- R7 I( X
【程序11; c) V4 E' l* [- L- G$ o0 t
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月
2 F6 Y9 P0 |. Q' d后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
$ I& r7 `0 n2 Y2 v( N; k. e  S1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
. c: @  x' j5 g+ W, M) k4 E2.程序源代码:
$ \' O7 f* c0 |6 ^5 Pmain() 1 S: Q) K; Y( \$ L
{ : u4 L; I3 e& d9 w
long f1,f2;
' F/ V! R3 U5 e' c- oint i;
8 D% z1 T" H/ ?f1=f2=1;
) j: V5 K7 B" ?for(i=1;i<=20;i++)
$ q3 C; S" E: M+ Y$ B9 r5 U9 k, V/ P, k{ printf("%12ld %12ld",f1,f2);
. P9 M: H3 D% g& F1 hif(i%2==0) printf("\n");/*控制输出,每行四个*/
" ?! H4 ^; }' u) sf1=f1+f2; /*前两个月加起来赋值给第三个月*/
  Y' S/ o% G# i4 P9 R9 ~7 s2 o1 hf2=f1+f2; /*前两个月加起来赋值给第三个月*/
# x& D3 @( @1 J! n9 D4 M! h} ) a  a) K) f8 o" y, @
}
3 y+ N% X( W6 ]============================================================== . K$ l: p2 R7 V; J( Y9 n
【程序12
$ }( E' `7 b* M3 K2 X: s题目:判断101-200之间有多少个素数,并输出所有素数。 ; \  c' P2 }6 g3 j9 s7 l0 r
1.程序分析:判断素数的方法:用一个数分别去除2sqrt(这个数),如果能被整除,
5 }2 `' g) @/ ?则表明此数不是素数,反之是素数。
5 ?3 P/ o  W9 J2.程序源代码: & Q8 R( K' w1 o' t
#include "math.h"
) e* |3 ~. y5 X4 B% Emain()
  A. s5 o$ q( m+ ^2 v( s0 a{ # _2 N8 p& m0 W2 n$ C/ g
int m,i,k,h=0,leap=1;
( ~8 _- w" u. ?& X1 C  b3 ^printf("\n"); 6 X2 t7 K6 M. B: T
for(m=101;m<=200;m++)
# \' E4 @) _; T{ k=sqrt(m+1); . a6 v# l  |1 V2 x, O$ d
for(i=2;i<=k;i++) ( A1 p' s! T( o
if(m%i==0) . g- T5 g" S" Q% R' d
{leap=0;break;} ' I9 p# M& R; W$ ?: T, Z$ z
if(leap) {printf("%-4d",m);h++;
" Y, d9 i' f; U3 O% ]+ s% R( [if(h%10==0)
6 s: w: g6 g2 Z0 j7 tprintf("\n");
5 `4 R( u; F9 K$ u% V}
; b" U( g+ E1 y1 U9 o9 y6 G, Pleap=1;   g% }5 D* W% b% v. b
} ; Z, F7 {% c# I7 [+ t4 K
printf("\nThe total is %d",h); / {. ~9 U* V: z) ]
} : |5 ^% ~# b" r  b0 A1 s. m! n
==============================================================
% e5 U$ c! d( h# E5 b【程序13
2 }, J- B# @- c" S* E, }& s: D题目:打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数
+ j0 `- d* |  z  V7 p本身。例如:153是一个水仙花数,因为153=1的三次方+5的三次方+3的三次方。 " ?- U0 P, f" n
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
) W. R5 j& k+ e$ {) n2.程序源代码:   p& q' B1 a, }! l, }
main() # P% Q) [: y4 ~1 X
{ & P" Z: S7 e5 D7 j1 \
int i,j,k,n; : W* P( h3 t! @  g. f
printf("'water flower'number is:"); . M, H% |) Y- x, U4 l
for(n=100;n<1000;n++) : h7 D; x7 q) P
{
1 K+ e2 M8 J: h' M% |5 j6 Qi=n/100;/*分解出百位*/
0 w' Q* y3 y1 P. R3 vj=n/10%10;/*分解出十位*/
3 s" U8 O2 v5 l$ r# Ok=n%10;/*分解出个位*/ 8 I; ?# S' O" ~/ s. v/ ]4 E# m
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) , H- c6 Q* A8 K. _
{ 2 U# @' X1 h* w/ C1 g% g
printf("%-5d",n);
) X- \4 f' E" V) @, |$ b} * t# @8 \! b! r  D3 b
}
; P: ]* P; R- L- G2 t" eprintf("\n");
; B; f/ L* V4 w* p3 l}
: E; e: G5 f' `% h============================================================== 7 [) a$ p0 J8 w+ ]: j9 W
【程序14
6 g  I: i# T' O2 i8 F, t# R) Q题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5
# k7 h) `8 s- m0 E
7 P, N' B- E" z; g" S程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: + s3 e! [; L2 m5 V
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 : I6 _% A- Y6 ?
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,
6 I, s; n" c! s6 w6 \9 E9 U重复执行第一步。 0 L8 W6 u5 I  j/ Q8 q
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 4 Y/ e+ `( \; L3 {" h! u
7 O; w2 D+ \% A/ R9 B- o
2.程序源代码: - F1 a5 V( ~. G$ Y
/* zheng int is divided yinshu*/
4 J% l8 N9 C/ k  ?8 s& vmain() , o( `# }6 v% s$ p4 G% F
{ $ @& G3 R( `+ }6 w8 Q
int n,i; 6 J6 a8 F1 R( A, `# F- ?  M1 @6 Q6 c! Y
printf("\nplease input a number:\n");
, F6 b3 T' Q; A; M+ i0 K$ f% fscanf("%d",&n); 8 o* t) i2 W0 t6 D, }& H
printf("%d=",n);
4 T& E" I+ Z# ?3 d2 x4 w: ~: i- \0 jfor(i=2;i<=n;i++)
  ~' j  a; l  T% D- D{ 6 B" H6 s/ f. X$ q: ~9 ~
while(n!=i) 4 C* @& k9 z( m, [, X% ]/ L
{ 1 @0 e, I, L6 b; u' P* k
if(n%i==0)
7 x  T4 h0 f6 b3 E{ printf("%d*",i);
& V5 O2 N' }& w! e5 in=n/i; 0 r7 l0 n; d; k2 p7 s5 X9 Q' }
}
) U! z0 U9 {5 Uelse + U5 ~2 ]' ]- `9 R/ H# d
break;
4 i- W% P. q+ v3 F}
) u2 j7 ^& y( J! b}
& }) A# J/ t# w2 C1 g$ Q% jprintf("%d",n);}
6 |) }$ o* f* y7 M& j, X4 @. Y==============================================================
$ N8 |' ], Z. Y! ^7 X【程序15
4 g7 t3 w! ]9 C: H题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示, 7 l8 i2 o+ j0 P0 l1 g) r& D
60分以下的用C表示。
! l( Q8 J' V6 N6 P) j3 l5 k$ w1.程序分析:(a>b)?a:b这是条件运算符的基本例子。 7 s; _- p& m5 x
2.程序源代码: ! b( H9 F$ j: Q" ~  t4 `# B
main()
6 [6 C( c- @4 h{ $ J. A3 d$ C) E" q% ]
int score; 9 t5 A; _+ F9 G( K) n( H
char grade; ' [% r/ m5 H- H1 E4 E
printf("please input a score\n");
+ h% f' [- C4 W& }4 O9 |scanf("%d",&score);
3 K+ u! i4 A0 J. k5 j$ z; I! Fgrade=score>=90?'A'score>=60?'B':'C');   m! a) @' l8 g: H) c0 s
printf("%d belongs to %c",score,grade);
  H: a" D4 l% Z; C# D& V}
/ O( ~) {- t0 Q; ?6 O) O3 e4 ]============================================================== 9 M/ {' b$ [6 E& L5 k- U

5 J1 f1 x1 U, E; d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2025-2-19 05:56 , Processed in 0.054550 second(s), 33 queries , Gzip On.

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

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

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