找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

C语言算法6-15

[复制链接]

114

主题

136

帖子

1000

积分

四级会员(40)

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

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

EDA365欢迎您!

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

x
【程序6
, O: f+ L/ G: @% T: d5 h& I& O# ^题目:用*号输出字母C的图案。
; R) l! r6 P9 o) J7 m1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。 ( }& k9 W& E7 j0 k, }( g
2.程序源代码: % n+ v3 t7 E: _1 l1 b
#include "stdio.h" / o# l. A- x8 [9 l- W: ~5 N: E2 M
main() { ( n/ y( g0 M& Y/ t1 `( N8 [  z
printf("Hello C-world!\n"); 6 l. @6 d& Q  E& N! K' ~4 k
printf(" ****\n"); $ \9 q% O/ M8 c, L  M
printf(" *\n");
, N# m; r- e6 b- R8 U( Pprintf(" * \n");
) \3 J  _# l) k- u. z& G9 iprintf(" ****\n"); } : P- W% W$ Z/ G; B% O: t5 D
============================================================== ) I( E  y) F5 T8 P% Z3 ?$ ~/ A' [
【程序72 K) C8 {! {! O7 [9 `& A7 q+ ~9 z  v
题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!
" L& }9 v" \3 [2 S3 `6 q4 o1 `1.程序分析:字符共有256个。不同字符,图形不一样。 8 T) h' q1 M8 C# V
2.程序源代码: ; |9 U& `' m( y& m7 C$ m
#include "stdio.h"
9 Z) E1 z% o* W; G/ p0 qmain()
+ Y' @0 k/ R5 x9 n{
) d! c& Y7 y+ B3 ]6 `char a=176,b=219;
$ t6 x/ r. f. j. j! }$ B! _7 Cprintf("%c%c%c%c%c\n",b,a,a,a,b); - d0 z: ^. W8 A% {
printf("%c%c%c%c%c\n",a,b,a,b,a); 7 z2 A/ b9 G4 i1 I
printf("%c%c%c%c%c\n",a,a,b,a,a);
" W7 T  b' r8 E( R3 J1 yprintf("%c%c%c%c%c\n",a,b,a,b,a); 9 r: k' s, U- I' U6 \# D
printf("%c%c%c%c%c\n",b,a,a,a,b);} $ v- f# M* X+ u) A6 `, r# ?
============================================================== , _" _' G% s5 _6 Q1 R8 L4 X
【程序8
8 c3 A4 p1 T6 q题目:输出9*9口诀。
' b& g  \4 m2 r  p' u) B0 {# U8 z8 M6 `1.程序分析:分行与列考虑,共99列,i控制行,j控制列。 ) i, V0 O7 }0 M* r
2.程序源代码:   R" S2 |  B5 Q, j
#include "stdio.h"
& T6 y0 q* g0 F! Lmain() 6 K- \' {$ E0 O2 {) N4 X6 o# A
{ . `5 O0 r) B5 Z) [4 ^7 h  k! \
int i,j,result;
  Y3 Y8 q. ~; ~printf("\n"); & }* k( O$ a1 r7 H8 w6 d; ?) O
for (i=1;i<10;i++) - a( K) y2 B& U3 H5 N) f
{ for(j=1;j<10;j++)
* t6 M+ z3 u$ G' |) W% g{ , d/ p$ T0 J" C. J( E5 x
result=i*j;
$ j" Z( n& b; D) _) l$ Nprintf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3*/
! C2 j* W8 A8 t/ J6 n1 e9 y* V} ' q1 E& l6 I0 P8 ]( m5 `$ a+ n. t
printf("\n");/*每一行后换行*/ 5 w/ L0 ^+ X# n9 O9 C; g$ T
}
6 z- b9 ]+ b# ?; L. q" A}
+ U" \0 c8 G% m============================================================== 1 e: {9 d6 K/ j3 P8 G/ Q3 m
【程序9$ O5 x- w3 p. ]/ z7 k, z7 E) V
题目:要求输出国际象棋棋盘。 (嵌入式学习企鹅要妖气呜呜吧久零就要)
9 N3 y2 {  C) V/ D9 A4 J% A1 v3 Q. s% {1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。 ( C8 o! f3 {$ z9 [7 p" x/ `* U
2.程序源代码:
" N2 M0 W9 U6 v( m#include "stdio.h"
# V. r7 M' S$ E* B1 i( B" lmain()
* R; f& {) T1 O* |% v{ 1 o+ o0 G- h/ O8 y/ w8 D; R) v# U
int i,j; 8 G. h2 q6 U6 O5 l
for(i=0;i<8;i++)
) m- J; v6 `& m  m{
! W8 N- I6 _  V" qfor(j=0;j<8;j++)
$ ^/ m! ]0 [9 g' L. n  ]if((i+j)%2==0)
' K0 i  K2 _4 i+ mprintf("%c%c",219,219); * t7 @3 M; \5 S8 t! I# ~) X
else
$ o2 L  V1 o7 B9 l9 l, |# v; m/ aprintf(" ");
( o% o( P8 I+ |, e1 h5 t! Gprintf("\n"); 3 U! Z, r) ?3 N2 q: H* c
} $ k# v9 E3 L" L# }. f0 I
} ! V% s( b* x6 s! O7 [( ^7 \7 n$ B! V' v
============================================================== 1 D+ `% }$ T0 [9 ?8 @& u. E
【程序10
; t, }; x/ ^! t8 K& ]* p0 @题目:打印楼梯,同时在楼梯上方打印两个笑脸。 . ~" A! G9 W- B
1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。 8 N/ w4 a1 o5 Q6 ]
2.程序源代码:
+ q- F, U0 k) X6 |$ L' _% i7 Y#include "stdio.h" 5 ]' ~4 M% d- `
main()
6 K# K0 g% T) c{ & B7 Q* k6 I% V. m8 ^- Z, Y
int i,j; % q0 C. n$ V9 M9 n
printf("\1\1\n");/*输出两个笑脸*/ 9 B; ~* Q* O% ]% B
for(i=1;i<11;i++) 5 X3 ~' A1 [+ l5 w8 R( h
{
0 L1 w* |( B4 Ofor(j=1;j<=i;j++)
7 U" p6 H; Y$ b" Rprintf("%c%c",219,219);
, H: W- j  |* z1 q0 Iprintf("\n");
+ i& f( W* @* G% I" f}
9 M2 ~; q" b2 t9 t}
  N( x; i" y) E: k
# X( M( S8 L0 G- Y
5 c, W* {5 X$ |& c4 E- [' N2 S" r: c' N' p* D5 h: W# s$ M3 O* i1 K
作者: zhlei81 2005-1-22 11:29 回复此发言 . ~  B: a& H! d! P3 g* S( e' {
. {" d  Z: t/ L8 l% }% T
--------------------------------------------------------------------------------
; @# K8 k, e) E; x: o& ]6 X( m
" Y# W) U$ ?) ^3 回复:经典C源程序100
6 L- q- l: [3 N. E5 W# [6 g0 U  }【程序111 [2 m) z) q1 w/ s, C2 d9 _  O' P
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月
! W' ^1 M8 X5 I8 U后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1 p: R/ a7 {# F3 m$ f) S+ O
1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... % ?) P% c& D1 z6 Z% h, c* i- h
2.程序源代码:
, @) v+ u; g) b- M0 l8 Tmain()
2 }4 v* f% a6 f8 o5 b1 Y{
! Y9 P/ q; B$ H0 A$ G+ klong f1,f2; : g  o8 w& L) U) s2 y" j/ V
int i;
* B& m! t7 k4 Z; Zf1=f2=1; # R/ R9 }4 ]6 N# r1 n
for(i=1;i<=20;i++)
! P2 A/ d+ d9 Q. o{ printf("%12ld %12ld",f1,f2);
( S$ V0 I' F! [: a5 Pif(i%2==0) printf("\n");/*控制输出,每行四个*/
# d, C1 G( G' G1 H. {f1=f1+f2; /*前两个月加起来赋值给第三个月*/   A/ O" f: j: h4 j7 v
f2=f1+f2; /*前两个月加起来赋值给第三个月*/ & Q: O" h9 q" V, }  i( l
} $ h7 I+ B- r6 Z
} 3 c0 L( e' @# A" D* Q: C5 \% e5 R0 j
==============================================================
' q, x; C5 x: b3 J3 t1 b【程序12
) i/ X8 [9 g8 @' T' s5 F题目:判断101-200之间有多少个素数,并输出所有素数。
  ^2 A: N9 p$ G" c1.程序分析:判断素数的方法:用一个数分别去除2sqrt(这个数),如果能被整除,
% O$ `& }  s5 f; Z6 |, B则表明此数不是素数,反之是素数。 ' {9 d5 U! [2 Q! n2 N8 r: \) ]
2.程序源代码:
( x% E% a% \4 l8 C5 g#include "math.h"
. @$ n4 r3 s3 e% k& Mmain()
' x/ L0 `' d/ A( u! I{ ; d( ?0 g3 m& p8 L. f( I# z* N
int m,i,k,h=0,leap=1;   I! Z& W1 H+ L& D9 u- ~/ A& ~
printf("\n"); & @/ {8 G( }) t* a% a. R
for(m=101;m<=200;m++)
1 {, U1 j5 C5 `1 Z' _{ k=sqrt(m+1); 4 R0 G; c  i; }- l" c
for(i=2;i<=k;i++)
, l1 m& K" G- J. y$ tif(m%i==0) # S) @! ]! o0 Y: I5 }) L9 a: _
{leap=0;break;}
! |1 L1 i9 G9 o$ M; H$ eif(leap) {printf("%-4d",m);h++;
. y  C" S8 C, rif(h%10==0) * u) j* w% `3 w5 J. W
printf("\n");
" }8 A$ G6 g  G0 l; P" k} " u4 Z  K& L* \& q" Y
leap=1;
1 M: |8 A, x& z  h8 r8 U3 ]} - M" P5 b) e. v
printf("\nThe total is %d",h);
' G: Y0 a- ?, P0 G}
9 D+ _+ y3 t! q% O============================================================== $ j4 Q: {3 X' b
【程序13" q1 G& c1 `! D
题目:打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数
: t4 F6 {" ^3 y; V4 D9 y& E本身。例如:153是一个水仙花数,因为153=1的三次方+5的三次方+3的三次方。
$ R+ \( ], r4 P7 O7 F- D) Y1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 9 v8 N5 p& B8 K1 V1 {
2.程序源代码:
# K; U5 N9 m9 [6 @8 t1 w3 Qmain()
7 X' e0 c9 [; l0 ^) Q, a{
' G; E$ G8 f9 |. S' zint i,j,k,n; % A8 h* v- K* }  K& }
printf("'water flower'number is:");
5 ]8 U7 M4 T+ F' x" @; [7 j1 T% Pfor(n=100;n<1000;n++) 9 _  L4 [& O4 Q7 |
{
) B( ]0 j* C8 Y; g/ Vi=n/100;/*分解出百位*/ 3 ]- a3 r7 L+ Z5 P. J7 p0 w4 E/ J
j=n/10%10;/*分解出十位*/ , Q9 {: ?3 c7 y$ E( q# F9 K% h$ v
k=n%10;/*分解出个位*/
8 j; E% k7 n& y! y4 xif(i*100+j*10+k==i*i*i+j*j*j+k*k*k) : i- o# W* m6 i' z- ?- e
{
  ~; D# Q, i3 Nprintf("%-5d",n); 3 l( W$ K( s: d/ C3 `9 [
}
3 Z( b- [+ ]+ R}
2 j- l' t5 ]) g6 vprintf("\n");
+ D- N) m# R4 D# m' y/ k$ b+ ~}
0 i7 |: y' V5 V8 e" h============================================================== ) U5 z  R( e, w1 e, {  S4 U
【程序14
6 f* L; H4 }+ @  `  s/ n6 z题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5) x( X8 `3 o% i0 x- T1 B6 L

$ f5 I4 @6 V% ^$ }程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
0 G; a9 N- @5 \# l1 a2 ~" ~/ N(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
! ^- c1 J8 C2 |8 H6 t(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,
+ [0 Q" X5 P2 U6 f  i重复执行第一步。
5 w6 i9 q- b% M' q3 q(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
! M/ q' ^2 W2 ?5 v3 p3 `/ Y7 k% Z6 J4 j6 b0 f7 I' n
2.程序源代码: ) I+ ]( M3 N8 b: S8 i; I
/* zheng int is divided yinshu*/ # R+ W& G- g, P, q- d7 e: O. G
main() 7 h" F' x1 j! q7 r- E1 T( ?* d
{ & D$ P* `( G% g) L" n2 ~) a0 l
int n,i;
5 l* P$ |' }6 ]. qprintf("\nplease input a number:\n"); % E' n! l& I4 v7 L- x
scanf("%d",&n); - L3 w: H# a* M
printf("%d=",n); ( C4 J( i' t0 H
for(i=2;i<=n;i++) ( e! u# _& ?# B
{   ]" I+ [1 R. o9 U7 v. B
while(n!=i) / w- v  {- V: d  V! ^
{
1 S" L" u: Y% y7 w8 yif(n%i==0)
) I! l+ F6 g5 o2 e' i& o{ printf("%d*",i); $ q# K0 P( _4 e; P, V3 b; z2 k0 Y
n=n/i;
! u7 r( j; P+ m- q}
1 z+ x5 i* k+ `0 }5 z- kelse
; h4 N: n+ [' z- ?break;
$ j3 c2 q2 B; ^* n/ }" h0 b} ( a: \: [7 w) P, Z6 n, x
} . y* I/ B& }2 @7 J! t) j
printf("%d",n);}
/ Z  d) i' {2 V============================================================== 0 E- C, x& t. k7 }
【程序15
$ l4 a* L$ b; _/ N题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,
- u: e" t* k# Y3 D3 V3 Z60分以下的用C表示。 1 r1 N: A, J& l/ f+ O+ }3 M
1.程序分析:(a>b)?a:b这是条件运算符的基本例子。 " r, L' W3 @! K, f
2.程序源代码: - _3 u2 \& U5 h9 i* Q: b
main() * n) Y# N  U, s, i6 R  [) @1 C
{
6 H# ~3 t9 N2 Y7 V" wint score; + o+ V; R7 D; X, r! Y
char grade;
7 z2 H2 `, s( j. o- f1 b" H. _printf("please input a score\n");
' U9 W* K, T8 F4 \0 s$ B3 Gscanf("%d",&score); : A4 @9 J4 t# p6 C. G" ?
grade=score>=90?'A'score>=60?'B':'C');
, ^$ L) Q# q3 [1 D' lprintf("%d belongs to %c",score,grade); ! `! U- g+ m  c; y1 C4 |6 _
} ' _% C0 U6 B* A  h! L
==============================================================
' \/ |& j) p' E

+ j* u/ g3 o  b1 _6 s
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

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

GMT+8, 2025-3-2 13:39 , Processed in 0.064365 second(s), 32 queries , Gzip On.

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

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

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